野外代码:
return function decorateSource(DecoratedComponent) {
return (0, _decorateHandler2.default)({
connectBackend: function connectBackend(backend, sourceId) {
return backend.connectDragSource(sourceId);
},
containerDisplayName: 'DragSource',
createHandler: createSource,
registerHandler: _registerSource2.default,
createMonitor: _createSourceMonitor2.default,
createConnector: _createSourceConnector2.default,
DecoratedComponent: DecoratedComponent,
getType: getType,
collect: collect,
options: options
});
};
有问题的结构:
(0, _decorateHandler2.default)(...)
此包装声明的内容是什么?
答案 0 :(得分:0)
这与此类似:
(function(){
// do something
})();
因为元素被包装在括号中被视为一个值,括号中的最后一个值被以下括号作为函数执行。 0,
没有做任何事情。删除0,
不会改变代码的运行方式,因此在这种情况下,我认为0,
只是混淆,因为_decorateHandler2.default
返回的是decorateSource
返回的内容。这样做的好处(或上面的代码示例)是您创建closure来帮助您控制变量的范围而不会污染全局范围。