小编Jun*_*Zhu的帖子

Javascript立即函数和代码范围

在比较正常函数和立即函数时,我对范围感到困惑.这是一个例子:

var num=5;
var x=3;
 doubleNum = function(){
   num = num*x
   x++;
   return num;
};
console.log(doubleNum());//15
console.log(doubleNum());//60
console.log(doubleNum());//300
Run Code Online (Sandbox Code Playgroud)

这是一个普通函数,num和x是全局定义的,可由doubleNum访问,因此更新了num和x.

var num=5;
var x=3;
doubleNum = function(){
   num = num*x
   x++;
   return num;
}();
console.log(doubleNum);//15
console.log(doubleNum);//15
console.log(doubleNum);//15
Run Code Online (Sandbox Code Playgroud)

但是,如果我定义一个立即函数并以同样的方式调用它,我得到了不同的答案.即使我希望有相同的输出我错过了必要的东西吗?或者我理解了一些错误的概念?请帮忙.提前致谢. 的jsfiddle

javascript closures function

0
推荐指数
1
解决办法
60
查看次数

标签 统计

closures ×1

function ×1

javascript ×1