在JavaScript中对象被定义为"无序属性的集合,其属性可以包含基本值、对象或函数。"通俗点讲,我们可以把对象理解为一组一组的名值对,其中值可以是数据或函数。
创建自定义对象通常有两种方法,第一种就是创建一个Object的实例,然后再为其添加属性和方法,例如:
var person = new Object(); person.name = "Scott"; person.age = 24; person.sayName = function(){ alert(person.name); }
第二种方法即对象字面量法,一般推荐使用这种方法创建对象,例如:
var person = { name: "Scott", age: 24, sayName: function(){ alert(this.name); } }
属性类型
JavaScript中定义了两种不同的属性:数据属性和访问器属性。数据属性一般用于存储数据数值,而访问器属性一般进行get/set操作,不能直接存储数据数值。在ES5中,我们为了描述属性(property)的各种特征,定义了特性(attribute)。在JavaScript中不能直接访问特性,我们把它放在两对方括号中,例如[[Enumerable]]。
"htmlcode">
将person对象name属性的特性writable设置为false,此属性的值为不可修改的,因此对该属性的复制操作会直接忽略。 可以看到,当把name属性的特性值configurable设置为false之后,就表示不能从对象中删除属性。但需要注意的是,当把属性定义为不可配置之后,就不能把它变回可配置的了。此时修改除writable之外的其它特性都会报错,例如: 也就是说,在把configurable特性修改为false之后,再修改其它特性就会有限制存在。 "htmlcode">
属性前面的下划线表示只能通过对象方法访问的属性。当我们使用person.name时实际上调用的是name属性的getter函数,为person.name赋值时调用的是name属性的setter函数,这样属性和访问器之间的关系就很清晰了。 定义多个属性 实际上ES5为我们提供了为一个对象定义多个属性的方法,即Object.defineProperties(),该函数接收两个参数,属性所在的对象以及需要修改的属性及其描述符对象组成的对象,例如把上边的例子修改为一次性定义多个属性,如下: 读取属性的特性 ES5提供了Object.getOwnPropertyDescripter()方法来获取给定属性的描述符。该方法接收两个参数:属性所在的对象和要读取其描述符的属性名称。结果会返回一个对象,如果是访问器属性,返回的对象有configuable、enumerable、get和set;如果是数据属性,这个返回对象的属性包括configuable、enumerable、writable和value。对于上面的例如,使用如下: 上面的代码中获取了person对象的tel属性,由于其是一个访问器属性,所以其value为undefined,enumerable为false,而get为指向getter函数的一个指针。 以上这篇浅谈JavaScript 数据属性和访问器属性就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
var person = {
name: "Scott"
}
Object.defineProperty(person,"name",{
writable:false;
})
console.log(person.name); //"Scott"
person.name = "Evan";
console.log(person.name); //"Scott"
var person = {
name: "Scott"
}
Object.defineProperty(person,"name",{
configurable:false;
})
console.log(person.name); //"Scott"
delete person.name;
console.log(person.name); //"Scott"
var person = {
name: "Scott"
}
Object.defineProperty(person,"name",{
configurable:false;
})
Object.defineProperty(person,"name",{
configurable:true; //此处会抛出错误
})
var person = {
_name: "Scott",
_age: 24,
_tel: 86247
};
//name属性为只读的
Object.defineProperty(person,"name",{
get: function(){
return this._name;
}
});
//age属性为只写不可读的
Object.defineProperty(person,"age",{
set: function(p){
this._age = p;
}
});
//tel属性为可读可写的
Object.defineProperty(person,"tel",{
get:function(){
return this._tel;
},
set: function(p){
this._tel = p;
}
});
console.log(person.name); //"Scott"
person.name = "Evan";
console.log(person.name); //"Scott",对name属性的修改无效
console.log(person.age); //undefined,不可读属性
person.age = 25;
console.log(person._age); //25,已经修改
console.log(person.tel); //"86247",可读属性
person.tel = "13975";
console.log(person.tel); //"13975",可以修改
var person = {
_name: "Scott",
_age: 24,
_tel: 86247
};
Object.defineProperties(person,{
name:{
get: function(){
return this._name;
}
},
age:{
set: function(p){
this._age = p;
}
},
tel:{
get:function(){
return this._tel;
},
set: function(p){
this._tel = p;
}
}
});
var person = {
_name: "Scott",
_age: 24,
_tel: 86247
};
Object.defineProperties(person,{
name:{
get: function(){
return this._name;
}
},
age:{
set: function(p){
this._age = p;
}
},
tel:{
get:function(){
return this._tel;
},
set: function(p){
this._tel = p;
}
}
});
var descripter = Object.getOwnPropertyDescripter(person,"tel");
console.log(descripter.value); //undefined
console.log(descripter.enumerable); //false
console.log(typeof descripter.get); //"function"
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]