【发布时间】:2015-04-03 11:21:05
【问题描述】:
看看这个对象
var bob = {
name : "Bob",
age : 18,
talk : function() {
console.log("hi");
},
growOld : function() {
this.age += 30;
}
}
我可以访问bob.age 并使用bob.growOld()。但是,如果我希望 bob.age 从外部只读并从内部读取怎么办?例如bob.age = 20 不起作用,我只能使用bob 对象的方法更改age 属性。
我做了一些谷歌搜索并设法设置了一个只读属性。
var bob = {
name : "Bob",
talk : function() {
console.log("hi");
},
growOld : function() {
this.age += 30;
}
}
Object.defineProperty(bob, "age", {
enumerable : false,
configurable : false,
writable : false,
value : 18
});
我不能用bob.age = 20改变age,但我也不能用方法改变它。 bob.growOld() 不会更改 age 属性。我认为将 configurable 设置为 true 可以解决问题,但事实并非如此。
有没有办法完成我在这里尝试做的事情?
【问题讨论】:
标签: javascript object properties readonly