var type = (0, _reactIs.isMemo)(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;(0, _reactIs.isMemo)真让我困惑。这个东西的意思是什么?ps:我知道(0, _reactIs.isMemo)这个表达式的值是_reactIs.isMemo
1 回答

慕盖茨4494581
TA贡献1850条经验 获得超11个赞
那里的逗号运算符确保括号内的内容被评估为没有调用上下文的表达式。
举一个更短的例子,如果代码是:
var type = obj.fn(someArg);
然后fn
将使用 的调用上下文调用obj
。但是原始的未转译代码,无论它是什么,都没有这样的调用上下文,因此为了忠实于原始代码,必须删除调用上下文,这可以通过逗号运算符来完成:
var type = (0, obj.fn)(someArg);
做同样事情的另一种方法是:
var fn = obj.fn;var type = fn(someArg);
(但这需要更多字符,所以缩小器更喜欢逗号运算符版本)
这是一个看起来很傻的缩小技巧,经常在导入的模块中看到。通常,您只会查看源代码,不会有这种傻事。
添加回答
举报
0/150
提交
取消