3>4?function1():function2()
是否允许在三元运算符中使用函数? 我知道你可以用它来表示价值,但对于我不确定的功能。
答案 0 :(得分:3)
你可以。但是像这样
var func = 3 > 4 ? function(){
console.log("3 is not greater than 4");
} : function(){
console.log("3 IS greater than 4");
};
现在func
有一个已有条件设置的函数引用。将其func()
调用将导致"3 IS greater than 4"
但是,如果您已经创建了该函数,那么只需参考即可。你不应该叫它。只需传递参考。
var func = 3 > 4 ? func1 : func2;
答案 1 :(得分:1)
你可以做到
var f = 3>4?function(){console.log("left")}:function(){console.log("right")}
或使用您的修改
var f = 3>4?function1:function2
然后f将是函数(不是函数的结果)
f()
或者如果你想要那些函数返回的值
var v = 3>4?function1():function2()
v
现在将是那些返回的函数
答案 2 :(得分:0)
这是有效的JavaScript:
var b = true;
var a = b == true ? function(){ return 1; } : function(){return 2; }
a
是function
,它取决于三元条件,正如您(希望)期望的那样。
如果您希望a
代替函数的返回值 - 请调用它。
var b = true;
var a = b == true ? (function(){ return 1; }()) : (function(){return 2; }())