2016-02-20 55 views
7

我到处找这个符号中的WebPack产生库,但我不明白:这个javascript语法是什么意思? (0,_parseKey2.default)(东西)

var a = (0, _parseKey2.default)(something) 

什么的(0, _parseKey2.default)代表?我不记得在函数参数中看到括号之间的昏迷分离表达式,所以也许我只是想念一些简单的东西。

感谢您的帮助。

+2

这是[逗号操作](https://developer.mozilla.org/en/docs/Web/JavaScript的/参考/运营商/ Comma_Operator)。没有线索,虽然为什么webpack正在产生这样的东西,但我也看到了。 –

回答

17

这是给_parseKey2.default正确this(或者,而不是,根本没有this),也就是说,将其称为普通函数而不是方法。考虑:

var p = { 
    f : function() { 
     console.log(this) 
    }, 
    x : "foo" 
}; 

p.f();  // { f: ... x: foo } 
(p.f)(); // { f: ... x: foo } 
(0, p.f)(); // implicit global this 

逗号表达是做到这一点的更简洁的方式:

var unbound = p.f; 
unbound(); 
+6

更多[本文](http://www.2ality.com/2015/12/references.html)。 –