javascript – 是什么意思(0,somefunc)(args)

前端之家收集整理的这篇文章主要介绍了javascript – 是什么意思(0,somefunc)(args)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > JavaScript syntax (0,fn)(args)3个
> Why does google main page use (0,obj.func)(args) syntax?1个
我一直在浏览一些gmails javascript(写一个扩展名),我已经看过(0,_.ab)(a)或各种各样的地方.这实现了什么?

我尝试了一些测试,比如

function a(a,b,c){ console.dir(a+b+c); }
(0,a)(1,2,3)

但是我无法理解他们为什么不直接拨打(1,3).使用(0,a)调用它有一些奇怪的好处吗?

我已经制作了一个jsperf(http://jsperf.com/direct-vs-0-func-calls)来测试它,而(1)vs(0,a)(1)似乎是相同的.

编辑:据我所知,google只在需要直接调用函数的地方使用它,例如if((0,_. wa)(a))(取自gmail的源代码)

解决方法

(0,func)()语法确保被调用函数func中的上下文(this)是全局上下文.

例如:

var myContext = {
    func: function () { 
        console.log(this);
    }
};

myContext.func();        // => myContext
(0,myContext.func)();   // => window

猜你在找的JavaScript相关文章