(function () {
var i = 0;
return function() {
window.alert(i++);
};
})()()();
这样一段代码 ,我 开始看代码时候以为会输出 1 ,但是 实际上 弹出窗口却是输出0 不知道为什么 ,
还有 ,这个代码最后 有三个空括号 不知道这三个空括号 分别是干啥用的, 求解答 谢谢
(function () {
var i = 0;
return function() {
window.alert(i++);
};
})()()();
这样一段代码 ,我 开始看代码时候以为会输出 1 ,但是 实际上 弹出窗口却是输出0 不知道为什么 ,
还有 ,这个代码最后 有三个空括号 不知道这三个空括号 分别是干啥用的, 求解答 谢谢
可以拆分成这样来理解
[code="java"]
var fun1 = function(i){
window.alert(i++);
}
var fun2 = function(){
var i = 0;
fun1(i);
}
[/code]
第1个括号是声明匿名函数的方式。
第2个括号是运行该函数
第3个的确可能是手误,多余的。
至于打印的是0不是1,是因为i++的运算顺序,i++,是i先用于运算,然后自增。++i是先自增,然后用于运算