我在看一个npm包的源码时,看到一个写法,但不知道这个写法有什么特别的,或者有什么好处
function foo(p){
return p + 1
}
// 以下写法
const tmp = (0, foo)(123)
// 和
const tmp = foo(123)
// 有什么区别?或者有什么好处?
(0, foo)就是一个逗号表达式,返回值就是foo函数
你这段代码里没区别,但是如果foo是一个对象里的方法的话(0, foo)可以更改this指向(一般是让其指向window)
在浏览器控制台敲了个demo,大概意思一下
你看的源码应该是 打包后自动生成这样的代码的吧,应该不是本身写的代码
我猜的哈,具体并不确定
https://www.cnblogs.com/ggll611928/p/13266576.html?utm_source=tuicool
有点像函数 柯里化
效果一样,不同写法
(0, foo)用的就是一个逗号表达式,会返回最后一个,有时候为了更改this指向,会这么写