javascript - 有关闭包问题。

查看:74
本文介绍了javascript - 有关闭包问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

function outer() {
    var n = 999;
    nAdd = function() { n++; };
    function fun() { return n; }
    return fun;
}

var result1 = outer();
var result2 = outer();
console.log(result1());//999
console.log(result2());//999
nAdd();
console.log(result1());//999
console.log(result2());//1000

不明白,,第三个输出不应该也是1000吗??

解决方案

每次调用 outer() 都会产生一个新的作用域,所以 result1result2 所对应的 n 是不一样的。

这篇关于javascript - 有关闭包问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆