【JavaScript】逗号表达式的一些应用

场景

babel转译出来的代码中,经常会看到

(0, _xyz.default)(param1, param2) 

这样的代码,一开始没有深思,见得多了,就有点好奇,为什么要这么干?
逗号表达式只是简单的执行逗号两边的表达式,然后返回逗号右边的表达式的值,咋看之下,(0, _xyz.default)这种用法没意义啊?

解密

其实,这里牵扯到js中的函数和方法的概念,如下所示:

// 函数调用,函数内部的this为空(严格模式下) 
func(param);
// 方法调用,方法内部的this为obj
obj.method(param)

所以,上述的转译代码,其实是一种相对tricky的方式完成了一个函数调用,相当于下面的代码

// 以下代码和(0, _xyz.default)(param1, param2)等价 
const func = _xyz.default;
func(param1, param2)

简化了书写,这也是逗号表达式难得的应用场景

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,593评论 25 709
  • 10.4号是中秋节,奶奶说中秋节寓意是团团圆圆。 下午4点开始,爷爷、奶奶还有妈妈已经在厨房为晚上的团圆饭做准备。...
    苏泓涛阅读 324评论 0 0
  • 现在是十一点半,周末公司的午饭时间,朵朵还没有起床,而通常朵朵出门需要一个小时,所以打算放弃今天的午饭。 昨夜又熬...
    北风里的遥望阅读 234评论 0 1