函数的写法是这样的:
(1, 2, 3, function(a, b){
console.log(a+b)
})(1, 2)
执行结果可以看出来是3,而且是一个匿名函数,这个也知道,但现在的问题是:前面的不定个数的参数有什么意义?因为你写几个都不影响执行结果
这种写法我说下出处,在webpack
打包完之后的入口文件的代码中,就会有这样的写法
已解决,感谢各位,我再补充一个例子,大家会更加明白:
var i = 0;
(i++, function (a) {
console.log(a + i)
})(5)
执行结果
这是
逗号表达式
,具体看MDN的文档 https://developer.mozilla.org...所以前面这个括号返回值就是最后的函数,
加上后面的括号,就是一个普通的函数调用了
关于在webpack中的用法,我也并不清楚,然后以"comma operator webpack"为关键词,在谷歌里搜了一下,搜索结果第一个是stackoverflow的一个问题https://stackoverflow.com/que...
其中的高票答案大概翻译是这样的:
这是为了给_test2.default _test4.default 正确的 this 指向(或者说,没有this),也就是说,把它们当成普通函数调用,而不是作为对象的方法。
比如这个场景:
上面的逗号表达式比下面这种方法更简洁:
今天没活干比较闲,关于this指向有人搞不清楚的可以提个问邀请我回答^_^