【发布时间】:2013-12-25 10:39:41
【问题描述】:
当将数组定义为 ES5 样式对象的属性时,我想使其属性的值无法更改。
'use strict';
var global = Object.create(Object.prototype, {
names: {
value: ['Barney', 'Trogdor'],
writable: false
}
});
global.names.push('Jackson'); // I expected a read-only error here
console.log(global.names[2]); // >> Jackson
global.names = ['Ooga', 'Booga']; // >> TypeError: "names" is read-only
看来我只保护了财产转让。
有没有办法防止像Array.push() 这样修改我的“不可写”数组的东西?
【问题讨论】:
标签: javascript arrays object ecmascript-5 writable