在react-redux库内部,在定义useSelector的文件中,我发现了多个逗号操作符的实例,它们以以下方式与iife一起使用:
var _useReducer = (0, _react.useReducer)(function (s) {
return s + 1;
}, 0),
forceRender = _useReducer[1];
var subscription = (0, _react.useMemo)(function () {
return (0, _Subscription.createSubscription)(store, contextSub);
}, [store, contextSub]);
var latestSubscriptionCallbackError = (0, _react.useRef)();
var latestSelector = (0, _react.useRef)();
var latestStoreState = (0, _react.useRef)();
var latestSelectedState = (0, _react.useRef)();
我无法理解或找到任何关于为什么他们在iife中使用0的参考。
在逗号操作符上下文中,计算每个值,并且只将最后一个表达式赋值给变量。
在我的眼中,在我的理解中,0是没有意义的。有人能解释一下吗?
这样做的原因是,从逗号操作符调用函数将被调用的函数置于全局上下文中。
如果没有使用此方法调用this
(上下文),则CC_2将是局部作用域。你经常会在babel或TypeScript等编译代码中发现这种行为。