//简单的对象实例
var person = new Object();
person.name = "Nicholas";
person.age = 29;
person.job = "Software Engineer";
person.sayName = function(){
alert(this.name);
}
//直接在对象上定义的属性,Configurable、Enumerable、Writable为true
var person = {
name:'cook'
};
Object.defineProperty(person,'name',{
value: 'Nicholas'
});
alert(person.name);//'Nicholas'
person.name = 'Greg';
alert(person.name);//'Greg'
//不是在对象上定义的属性,Configurable、Enumerable、Writable为false
var person = {};
Object.defineProperty(person,'name',{
value: 'Nicholas'
});
alert(person.name);//'Nicholas'
person.name = 'Greg';
alert(person.name);//'Nicholas'
//该例子中设置writable为false,则属性值无法被修改
var person = {};
Object.defineProperty(person,'name',{
writable: false,
value: 'Nicholas'
});
alert(person.name);//'Nicholas'
person.name = 'Greg';
alert(person.name);//'Nicholas'
//该例子中设置configurable为false,则属性不可配置
var person = {};
Object.defineProperty(person,'name',{
configurable: false,
value: 'Nicholas'
});
alert(person.name);//'Nichols'
delete person.name;
alert(person.name);//'Nicholas'
var person = {};
Object.defineProperty(person,'name',{
configurable: false,
value: 'Nicholas'
});
//会报错
Object.defineProperty(person,'name',{
configurable: true,
value: 'Nicholas'
});
//简单的修改访问器属性的例子
var book = {
_year: 2004,
edition: 1
};
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.year)//2005
alert(book.edition);//2
var book = {
_year: 2004,
edition: 1
};
Object.defineProperty(book,'year',{
get: function(){
return this._year;
},
});
book.year = 2005;
alert(book.year)//2004
var book = {
_year: 2004,
edition: 1
};
Object.defineProperty(book,'year',{
set: function(newValue){
if(newValue > 2004){
this._year = newValue;
this.edition += newValue - 2004;
}
}
});
book.year = 2005;
alert(book.year);//undefined
var book = {
_year: 2004,
edition: 1
};
//定义访问器的旧有方法
book.__defineGetter__('year',function(){
return this._year;
});
book.__defineSetter__('year',function(newValue){
if(newValue > 2004){
this._year = newValue;
this.edition += newValue - 2004;
}
});
book.year = 2005;
alert(book.year);//2005
alert(book.edition);//2
var book = {};
Object.defineProperties(book,{
_year: {
value: 2004
},
edition: {
value: 1
},
year: {
get: function(){
return this._year;
},
set: function(newValue){
if(newValue > 2004){
this._year = newValue;
this.edition += newValue - 2004;
}
}
}
});
var book = {};
Object.defineProperties(book,{
_year: {
value: 2004
},
edition: {
value: 1
},
year: {
get: function(){
return this._year;
},
set: function(newValue){
if(newValue > 2004){
this._year = newValue;
this.edition += newValue - 2004;
}
}
}
});
var descriptor = Object.getOwnPropertyDescriptor(book,'_year');
alert(descriptor.value);//2004
alert(descriptor.configurable);//false
alert(typeof descriptor.get);//'undefined'
var descriptor = Object.getOwnPropertyDescriptor(book,'year');
alert(descriptor.value);//'undefined'
alert(descriptor.configurable);//false
alert(typeof descriptor.get);//'function'
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有