请教关于()的用法
var foo = function () {
var local = “局部变量”;
(function () {
console.log(local); }());
};
请问第3,4行的括号有什么用处啦?
8 回复
让内部的匿名函数自执行
应该是 (function () {})()
而不是 (function () {}())
(function () {})() 匿名自执行函数,由于(function(){})是表达式,js会去对它求解得到返回值,由于返回值是一个函数,故遇到();时会被执行.
@SweetHeartXi 谢谢,明白了
不过这段代码写法木有必要
两种方式都可以
1,(function(){})()
2,(function(){}())
不可以的:
function() {}()
可以的:
var func = function() {}()
最开始的两种写法把函数生声明化为了函数表达式->函数声明是不可以用()自调用的,因为()会被忽略
//Throw error
//function() {
// console.log('invoked');
//}()
//invoked
//var func = function() {
// console.log('invoked');
//}()
//invoked
//(function() {
// console.log('invoked');
//}())
//invoked
//(function() {
// console.log('invoked');
//})()
@dayuoba 这个问题我以前也研究过,结论一样。但是你这次给出学名了~~
优先运算。2楼误导人家。这样写也不可以的,不了解不要轻言。