使用语法(0,myFunction)()调用JavaScript函数
我对JavaScript非常陌生,但我发现语法使用语法(0,myFunction)()调用JavaScript函数,javascript,Javascript,我对JavaScript非常陌生,但我发现语法(0,myFunction)(可以在JavaScript上调用匿名函数,但我不知道匿名函数之前的0是什么意思,也不知道是否可以使用1或2来代替0,等等 基本上,我的问题是调用函数myFunction()或(0,myFunction)()之间有什么区别。该函数位于全局上下文中 这里有一个例子 var object = {} object.foo = function(){} 调用函数之间的区别 (0,object.foo)(); 或 您可以将这两个
(0,myFunction)(
可以在JavaScript上调用匿名函数,但我不知道匿名函数之前的0是什么意思,也不知道是否可以使用1或2来代替0,等等
基本上,我的问题是调用函数myFunction()
或(0,myFunction)(
)之间有什么区别。该函数位于全局上下文中
这里有一个例子
var object = {}
object.foo = function(){}
调用函数之间的区别
(0,object.foo)();
或
您可以将这两个调用重写为以下等价项:
object.foo.call(null); // (0,object.foo)();
object.foo.call(foo); // object.foo();
正如您所看到的,唯一的区别是被调用函数中
this
的“绑定”;但是使用(0,something)()代码>被认为是神秘的,应该在专业代码库中避免使用。请提供更多上下文(0,myFunction)
本身不起任何作用(它当然不执行函数)。您在哪里看到的?在什么情况下?你能举个例子吗?你确定它有外皮吗?没有它们会更有意义……我假设您看到了(0,function(){/*some code*/}())
,但是0,
似乎毫无意义。然而,这有点不同0,function(){/*some code*/}()
的可能重复
object.foo.call(null); // (0,object.foo)();
object.foo.call(foo); // object.foo();