給定一個對象obj
,我想定義一個只讀屬性'prop'
並將其值設置爲val
。這是做這件事的正確方法嗎?在JavaScript中定義只讀屬性
Object.defineProperty(obj, 'prop', {
get: function() {
return val;
}
});
結果應該是(爲val = 'test'
):
obj.prop; // 'test'
obj.prop = 'changed';
obj.prop; // still 'test' since it's read-only
此方法BTW:http://jsfiddle.net/GHMjN/
我只是不能確定這是否是最容易/光滑/最適當的方式做到這一點...
可能的重複:http://stackoverflow.com/questions/366047/can-read-only-properties-be-implemented-in-pure-javascript(如果你不想支持舊瀏覽器,你的方法是最好的) –