js属性类型

js中有两种属性:数据属性和访问属性
1、数据属性
configurable    enumberable     writeable    value  
调用Object.defineProperty()方法改变默认属性
实例:

var person ={};
Object.defineProperty(person,"name",{
writable: true,
value: "test"
});
alert(person.name);  //"test"
person.name= "change";
alert(person.name);  //"test"

PS:调用Object.defineProperty()改变一个属性时,如果不指定其余的属性,其默认值都变为为false;

2、访问器属性
configurable    enumberable    get   set
调用Object.defineProperty()方法改变默认属性  
实例:

var book = {
	oldYear : 2004 ,
	edition : 1
};
Object.defineProperty(book, "newYear",{
        get: function(){
		return this.oldYear;
	},
        set: function(newValue){
	    if(newValue > 2004) {
		this.oldYear = newValue;
		this.edition += newValue - 2004 ;
           }
	}
});
book.newYear = 2005;
alert(book.edition);  //2
PS:只指定getter将不能写, 只指定setter将不但能读

定义多个属性

var book = {};
Object.defineProperty(book, {
	oldYear:{
	   value:2004
	},
	edition:{
	    value:1
	},
	newYear:{
	    get: function(){
	    return this.oldYear;
	},
	set: function(newValue){
	    if(newValue > 2004) {
		this.oldYear = newValue;
		this.edition += newValue - 2004 ;
	}
     }
   }
});

转载于:https://my.oschina.net/xing240/blog/170002

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值