关于三元运算符的一个问题
在看《JavaScripot权威指南》这本书,看到三元运算符这一块,于是尝试写了这么一个三元运算:
var x = 1; var y = (x == 1 ? function(){return 1}:function(){return -1}) console.log(y);
结果,各位看官你觉得Y等于多少? y = function(){return 1},他返回的直接就是就是这个函数,而不是函数执行的结果。如果需要结果的话还得让函数立即执行。应该是这样:
var x = 1; var y = (x == 1 ? (function(){return 1})():(function(){return -1})()); console.log(y)
因为函数也是对象,也是能够被返回的。就这样