之前一直对这三个属性有点印象,但总是模棱两可的,上次笔试有考到,总结下
默认为 false。
这个属性只是让你设置能不能删除,设置为并不是不可以赋值
看代码吧:
let obj = {
name: 'han',
age: 19
}
Object.defineProperty(obj,'age',{
configurable: false
})
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
console.log(`${key}值为....`,obj[key]);
}
}
obj.age = 18
console.log(obj.age);
console.log(delete obj.age);
console.log(delete obj.name);
当且仅当该属性的 enumerable 键值为 true 时,该属性才会出现在对象的枚举属性中。
默认为 false
let obj = {
name: 'han',
age: 19
}
Object.defineProperty(obj,'age',{
enumerable: false
})
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
console.log(`${key}值为....`,obj[key]);
}
}
obj.age = 18
console.log(obj.age);
console.log(delete obj.age);
console.log(delete obj.name);
当且仅当该属性的 writable 键值为 true 时,属性的值,也就是上面的 value,才能被赋值运算符改变。
默认为 true。
let obj = {
name: 'han',
age: 19
}
Object.defineProperty(obj,'age',{
writable: false
})
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
console.log(`${key}值为....`,obj[key]);
}
}
obj.age = 18
console.log(obj.age);
console.log(delete obj.age);
console.log(delete obj.name);
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- azee.cn 版权所有 赣ICP备2024042794号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务