六、1、对象属性的四种特性

本文详细探讨了JavaScript中对象属性的四种特性:[[Configurable]]、[[Enumerable]]、[[Writable]]与[[Value]],并介绍了如何使用`Object.defineProperty()`及`Object.defineProperties()`来设置这些属性特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var person=new Object();
person.name="Nicholas";
person.age=29;
person.sayName=function(){
	alert(this.name);
}

上面创建了一个person属性对象,他的name属性有四种特性。

[[Configurable]]  能否删除修改这个name属性

[[Enumerable]]   表示能否通过 for-in 循环返回属性

[[Writable]]    表示能否修改name属性的值

[[Value]]   包含这个属性的数据值。读取属性值的时候,从这个位置读;写入属性值的时候,
  把新值保存在这个位置。这个特性的默认值为 undefined 。

1、 Object.defineProperty()   要想修改属性的特性,使用这个方法

这个方法接收三个参数:属性所在的对象、属性的名字和一个描述符对象。

	var person={};
	Object.defineProperty(person,name,{
			writable:false,
			value:"Nicholas"
                })
2、访问器属性

Object.defineProperty(book, "year", {
get: function(){
return this._year;
},
set: function(newValue){
if (newValue > 2004) {
this._year = newValue;
this.edition += newValue - 2004;
}
}
});
book.year = 2005;
alert(book.edition); //2


3、定义多个属性特性   Object.defineProperties()

Object.defineProperties(girl,{
  name:{
    writable: false
  },
  age:{
    writable: true,
    value: 22
  }
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值