function testLet(){
var x=9;
return{
y:x,
getX: function(){
return ++x;
},
}
}
var obj = new testLet();
console.log(obj.y); //9 as expected
console.log(obj.getX()); //10 as expected
console.log(obj.getX()); //11 as expected
console.log(obj.y); //I expect it 11.. but it stays 9
为什么最后一行返回 9 而不是 11 因为 x 在同一范围内?
y:x
表示“将 的当前值复制x
到属性y
”。
当时的价值是9
。
对 值的后续更改x
不会更改 的值y
。
您可以将getX
函数更改为 modify this.y
,也可以将y
属性更改为读取 的当前值的 getter 函数x
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句