我正在查看一些Gmail的JavaScript代码(编写扩展程序),并且在各个地方都看到了(0, _.ab)(a)
或其变体。这是什么意思?
我已经尝试了一些测试,例如:
function a(a,b,c){ console.dir(a+b+c); }
(0, a)(1,2,3)
然而,我无法弄清楚为什么他们不直接调用
a(1,2,3)
。使用(0,a)
调用它是否有一些奇怪的好处? 我制作了一个jsperf(http://jsperf.com/direct-vs-0-func-calls)来测试这个问题,a(1)
与(0,a)(1)
似乎是相同的。 编辑:据我所知,谷歌只在需要直接调用函数时才使用它,例如从gmail的源代码中获得的if ((0, _.wa)(a))
。
(0, $)('body');
,它基本上与只调用$('body');
相同...咦。 - Cerbrus$
不是一个函数。 - Zirak