为什么人家这么写js?

 var type = (0, _reactIs.isMemo)(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;

(0, _reactIs.isMemo)真让我困惑。这个东西的意思是什么?

ps:我知道(0, _reactIs.isMemo)这个表达式的值是_reactIs.isMemo


qq_遁去的一_1
浏览 103回答 1
1回答

慕盖茨4494581

那里的逗号运算符确保括号内的内容被评估为没有调用上下文的表达式。举一个更短的例子,如果代码是:var type = obj.fn(someArg);然后fn将使用 的调用上下文调用obj。但是原始的未转译代码,无论它是什么,都没有这样的调用上下文,因此为了忠实于原始代码,必须删除调用上下文,这可以通过逗号运算符来完成:var type = (0, obj.fn)(someArg);做同样事情的另一种方法是:var fn = obj.fn;var type = fn(someArg);(但这需要更多字符,所以缩小器更喜欢逗号运算符版本)这是一个看起来很傻的缩小技巧,经常在导入的模块中看到。通常,您只会查看源代码,不会有这种傻事。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript