在下面的代码中,console.log(o.x)
都打印了 1
。赋值 o.x = 2
会发生什么?只是被忽略了吗?
var o = {
get x() {
return 1;
}
}
console.log(o.x); // 1
o.x = 2
console.log(o.x); // 1
最佳答案
在 sloppy 模式下,是的,它会被忽略——“分配”的值将被丢弃。但是在严格模式下(推荐),会抛出如下错误:
Uncaught TypeError: Cannot set property x of
#<Object>
which has only a getter
'use strict';
var o = {
get x() {
return 1;
}
}
console.log(o.x); // 1
o.x = 2
关于javascript - 在 JavaScript 中,如果我分配给一个有 getter 但没有 setter 的对象属性会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53579207/