var i = (function () {....} ())
与
var i = function () {....} ()
好吧,写的不够详细,我知道()等操作符是把声明转化为函数表达式
但我不明白第一种 在最外层加上(),不是多次一举了吗?为什么很多人这样写?
var i = (function () {....} ())
与
var i = function () {....} ()
好吧,写的不够详细,我知道()等操作符是把声明转化为函数表达式
但我不明白第一种 在最外层加上(),不是多次一举了吗?为什么很多人这样写?
好吧,写的不够详细,我知道()等操作符是把声明转化为函数表达式
但我不明白第一种 在最外层加上(),不是多次一举了吗?为什么很多人这样写?
这个是匿名函数表达式,最外层加括号主要是受非匿名函数表达式影响吧
(function sayHello()
{
alert("hello");
}());
这种情况如果最外层不加括号,会解析成如下
function sayHello()
{
alert("hello");
};
();
当然下面这个会报错,但是如果括号中给传一个参数他就不报错了,所以下面这种写法是得不到预定的效果的
function sayHello()
{
alert("hello");
}(1);
只有最外层加了括号才行,或者使用下面的写法
(function sayHello()
{
alert("hello");
})(1);
10 回答11k 阅读
7 回答11.1k 阅读
6 回答2.9k 阅读
5 回答4.7k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
这是 自行执行函数表达式 的两种写法。
在第一种方法中,最外层的括弧是为了消除歧义的,其实压根就没必要,因为括弧本来内部本来期望的就是函数表达式,但是我们依然用它,主要是为了方便开发人员阅读。