H5W3
当前位置:H5W3 > 问答 > 正文

不应该是每次返回的闭包都是n=0吗,++也应该在n=0基础上,输出应该是111啊

当有n++时候,返回值是123

function fun(n, b) {
console.log(b) //und123
return {
fn1: function (m) {
n++;
return fun(m, n);
}
};
}
var a = fun(0)
a.fn1(1);
a.fn1(2);
a.fn1(3);
function fun(n, b) {
console.log(b) //und000
return {
fn1: function (m) {
//n++;
return fun(m, n);
}
};
}
var a = fun(0)
a.fn1(1);
a.fn1(2);
a.fn1(3); 

回答

a.fn1方法每次调用时都会修改a.fn1的作用域对象属性n的值。Chrome debugger看看:
不应该是每次返回的闭包都是n=0吗,++也应该在n=0基础上,输出应该是111啊

不应该是每次返回的闭包都是n=0吗,++也应该在n=0基础上,输出应该是111啊

不应该是每次返回的闭包都是n=0吗,++也应该在n=0基础上,输出应该是111啊

不应该是每次返回的闭包都是n=0吗,++也应该在n=0基础上,输出应该是111啊

未经允许不得转载:H5W3 » 不应该是每次返回的闭包都是n=0吗,++也应该在n=0基础上,输出应该是111啊

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址