使用 Object.defineProperties 定义属性
Define properties with Object.defineProperties
请帮助理解为什么 obj['prop'] = 'zzz';
行不起作用,甚至在 "use strict";
打开时显示错误,而在使用 Object.defineProperty(obj, 'prop', {value:'zzz'});
时工作正常? (虽然 delete
工作得很好)
//"use strict";
var obj = Object.defineProperties({}, {
prop: {
value: 'aaa',
writeable: true,
enumerable: true,
configurable: true
}
});
console.log(obj.prop);
obj['prop'] = 'zzz';
//Object.defineProperty(obj, 'prop', {value:'zzz'});
console.log(obj.prop);
//delete obj.prop;
//console.log(obj.prop);
是writable
,不是writeable
(注意中间没有e
)。
请帮助理解为什么 obj['prop'] = 'zzz';
行不起作用,甚至在 "use strict";
打开时显示错误,而在使用 Object.defineProperty(obj, 'prop', {value:'zzz'});
时工作正常? (虽然 delete
工作得很好)
//"use strict";
var obj = Object.defineProperties({}, {
prop: {
value: 'aaa',
writeable: true,
enumerable: true,
configurable: true
}
});
console.log(obj.prop);
obj['prop'] = 'zzz';
//Object.defineProperty(obj, 'prop', {value:'zzz'});
console.log(obj.prop);
//delete obj.prop;
//console.log(obj.prop);
是writable
,不是writeable
(注意中间没有e
)。