像exports.default=(0,_createHelper2.default)(pure,';pure';,1)这样编写Javascript的目的是什么?

像exports.default=(0,_createHelper2.default)(pure,';pure';,1)这样编写Javascript的目的是什么?,javascript,node.js,Javascript,Node.js,我发现在一些LIB中有如下表达式: exports.default = (0, _createHelper2.default)(pure, 'pure', 1) 似乎它与\u createHelper2.default(纯'pure',1) 那么这样写的目的是什么呢?有一点不同:调用\u createHelper2时使用的this的值。默认值: 与 \u createHelper2.将调用默认值,并将设置为全局对象(松散模式)或未定义(严格模式) 与 \u createHelper2。将调用默

我发现在一些LIB中有如下表达式:

exports.default = (0, _createHelper2.default)(pure, 'pure', 1)
似乎它与
\u createHelper2.default(纯'pure',1)

那么这样写的目的是什么呢?

有一点不同:调用
\u createHelper2时使用的
this
的值。默认值:

\u createHelper2.将调用默认值
,并将
设置为全局对象(松散模式)或
未定义
(严格模式)

\u createHelper2。将调用默认值
,并将
设置为
\u createHelper2

(无论
\u createHelper2.default
是否实际看到用于调用的
值取决于它是普通函数、绑定函数还是箭头函数;但这就是对它的调用的区别。)

exports.default=(0,_createHelper2.default)(pure,'pure',1)
的工作原理是使用逗号运算符获取函数引用,而不包含相关的属性信息,然后不通过属性访问调用该函数,这绕过了
this
的常规设置。就像这样做:

var f = _createHelper2.default;
exports.default = f(pure, 'pure', 1)

那么,为什么不用一个明显的
调用来调用它呢
,这是以后更容易理解的方法<代码>\u createHelper2.default.call(未定义,纯,'pure',1)
@smnbbrv:它很可能是精简的代码,而不是人类实际编写或需要编辑的代码。有些人喜欢简洁的风格。(我不是他们中的一员。)不过,就像许多语言中的习语一样,一旦你熟悉了它,你就会非常清楚。是的,当然,只是看起来很尴尬。。。我对类似的语法没有问题,但我可以想象新来者会多么讨厌它:)
_createHelper2.default(pure, 'pure', 1)
var f = _createHelper2.default;
exports.default = f(pure, 'pure', 1)