运行效果:

由于obj1的z是可配置的,所以,要想修改z值,将z的可写改成true即可
Object.defineProperty(obj1, ‘z’,{
writable:true,
})
运行结果:z值可修改

可枚举:
可枚举时:
var obj1 = {
x:1,
y:2,
}
Object.defineProperty(obj1, ‘z’,{
value:3,
writable:true,
enumerable:true,
configurable:true,
})
for (var i in obj1){
console.log(i + ’ : ’ + obj1[i]);
}
运行效果:

不可枚举时:
var obj1 = {
x:1,
y:2,
}
Object.defineProperty(obj1, ‘z’,{
value:3,
writable:true,
enumerable:false,
configurable:true,
})
for (var i in obj1){
console.log(i + ’ : ’ + obj1[i]);
}
运行效果:

可配置
不可配置之不能删除属性:delete返回false
var obj1 = {
x:1,
y:2,
}
Object.defineProperty(obj1, ‘z’,{
value:3,
writable:true,
enumerable:false,
configurable:false,
})
运行效果:

不可配置之不能修改配置:
Object.defineProperty(obj1, ‘z’,{
value:3,
writable:false,
enumerable:false,
configurable:false,
})//初始特性设置
Object.defineProperty(obj1, ‘z’,{
writable:true,
enumerable:false,
configurable:true,
})//想要修改配置
运行结果:报错,原因,初始设置时,设置configurable:false,

多属性:
Object.defineProperties(obj1,{
z: {
value: 3,
writable:false,
enumerable:true,
configurable:true,
},
t : {
value: 4,
writable: true,
enumerable:true,
configurable:true,
}
})
查看属性的特性:Object.getOwnPropertyDescriptor(对象, 属性名)

set与get
//某班级男生10人,女生8人,算班费
var classFare = {boy:10, girl:8, allmoney:0};
Object.defineProperty(classFare, ‘onemoney’,{
set:function(money){
this.allmoney = (this.boy + this.girl )* money ;
},
get:function(){
return ‘总共:’+this.allmoney;
},
// writable:true,//Cannot both specify accessors and a value or writable attribute
enumerable:true,
configurable:true,
})
运行结果:
最后
你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。
我特地针对初学者整理一套前端学习资料

figurable:true,
})
运行结果:
最后
你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。
我特地针对初学者整理一套前端学习资料
[外链图片转存中…(img-hHn1vvpT-1727197417980)]


被折叠的 条评论
为什么被折叠?



