使用defineProperty可以定义属性是否可以被枚举、修改和删除
configurable 对象的属性是否可以被删除
var o = { a:1 }
Object.defineProperty(o, 'a', { configurable: false })
delete o.a
console.log(o) // {a: 1}
writable 对象的属性是否可以被修改
var o = { a:1 }
Object.defineProperty(o, 'a', { writable: false })
o.a = 2
console.log(o) // {a: 1}
enumerable 对象的属性是否可以被枚举
var o = { a:1, b:2 }
Object.defineProperty(o, 'a', { enumerable: false })
for (var key in o) {
console.log(key) //b
}
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。
回复 (0)
微信扫码 立即评论