使用语法(0,myFunction)调用JavaScript函数()

时间:2014-06-19 17:54:20

标签: javascript

我是JavaScript的新手,但我发现语法(0, myFunction)()在JavaScript上调用匿名函数,但我不知道在匿名函数之前0是什么意思,我也不知道如果不是0,我可以使用1或2,等等。

基本上我的问题是调用函数myFuntion()(0, myFunction)()之间的区别是什么。该功能处于全局范围内。

这是一个例子。

var object = {}
object.foo = function(){}

调用函数

之间的区别
(0,object.foo)();

object.foo();

1 个答案:

答案 0 :(得分:2)

您可以将两个调用重写为以下等价物:

object.foo.call(null); // (0,object.foo)();

object.foo.call(foo); // object.foo();

正如您所看到的,唯一的区别是"绑定"在被调用函数内的this;但(0, something)();的使用被认为是神秘的,应该在专业的代码库中避免使用。