我找到了以下自调用函数语法:
var data = (0, foo)();
function foo(){
return "a";
}
但是我没有得到0(零)的含义。任何人都可以向我解释。 提前谢谢。
答案 0 :(得分:1)
在我的opinoin中,这是对comma operator毫无意义的使用。
@techfoobar 正确地说明:
A"以逗号分隔的陈述清单"只返回列表中最后一项返回的内容。例如,
x = (2, 3, "Hi")
会将值"Hi"
设置为x
。
function foo(){
return "a";
}
// The following all return 'a'
console.log(('hello', foo)());
console.log((null, foo)());
console.log((true, foo)());
console.log((undefined, foo)());
console.log((0, foo)());
console.log((1, foo)());
console.log(({}, foo)());

答案 1 :(得分:1)
0是完全可选的,这个语法的作用是,它会篡改每个成员并返回最后一个成员。
在这种情况下你有:(0,foo) 它将eval 0到0,eval foo到一个函数,返回它并用last()调用它
您只需致电
即可(foo)()
或者您可以创建一些步骤
这将提醒然后调用foo
function a () {
alert(1)
}
(a(), foo)()
这将只是提醒并将foo作为函数返回,以便稍后调用
var f = (a(), foo)
f()
它可能非常具体地用于我不知道的条件范围或变量
答案 2 :(得分:1)
在我看来,用逗号运算符调用函数可能是一种编程习惯。当我们进行函数调用时,它为我们提供了深入思考的空间。
(foo)();
和(0,foo)();
等函数调用的结果是相同的。
但后一种方式会让你想到在foo被调用之前还有什么可做的。
你可以用你应该做的doSomething()
替换0。