Web前端之路Web 前端开发

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

2017-08-02  本文已影响39人  mercurygear

场景

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)

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

上一篇 下一篇

猜你喜欢

热点阅读