在浏览器控制台中执行以下代码,输出的结果是什么,请详细解释,并举例扩展说明
function test() {
var n = 4399;
function add() {
n++;
console.log(n);
}
return { n: n, add: add };
}
var result = test();
var result2 = test();
result.add();
result.add();
console.log(result.n);
result2.add();
输出结果是 4400 4401 4399 4400 ,为什么 result.add(); 不会影响 result.n 的值
var result = test();
result 变成下面这样,这里面的 n++ ,会改变 result 的属性 n 的值吗
{
n: 4399,
add: function() {
n++;
console.log(n);
}
}
而经过 result.add(); 为什么 n 的值又会保留下来呢