为了账号安全,请及时绑定邮箱和手机立即绑定

为什么人家这么写js?

为什么人家这么写js?

qq_遁去的一_1 2023-03-03 09:50:19
 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);

(但这需要更多字符,所以缩小器更喜欢逗号运算符版本)

这是一个看起来很傻的缩小技巧,经常在导入的模块中看到。通常,您只会查看代码,不会有这种傻事。


查看完整回答
反对 回复 2023-03-03
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号