最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

浅析ECMAScript中对象的两种属性

来源:动视网 责编:小采 时间:2020-11-27 19:33:29
文档

浅析ECMAScript中对象的两种属性

浅析ECMAScript中对象的两种属性:ECMAScript对象有两种属性,分别为数据属性和访问器属性,接下来我们就分别对着两种属性进行分析。1、数据属性数据属性包含一个数据值的位置。这个位置可以读取和写入值。数据属性有4个描述其行为的特性。[ [ Configurable ] ] 表示能否通过delete删
推荐度:
导读浅析ECMAScript中对象的两种属性:ECMAScript对象有两种属性,分别为数据属性和访问器属性,接下来我们就分别对着两种属性进行分析。1、数据属性数据属性包含一个数据值的位置。这个位置可以读取和写入值。数据属性有4个描述其行为的特性。[ [ Configurable ] ] 表示能否通过delete删


ECMAScript对象有两种属性,分别为数据属性和访问器属性,接下来我们就分别对着两种属性进行分析。

1、数据属性
数据属性包含一个数据值的位置。这个位置可以读取和写入值。数据属性有4个描述其行为的特性。
[ [ Configurable ] ] 表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问属性。默认为true
[ [ Enumerable] ] 表示能否通过for-in循环返回属性。默认为true
[ [ Writable ] ] 表示能否修改属性的值。默认为true
[ [ Value ] ] 包含这个属性的属性值。读取属性的时候,从这个位置读取,写入属性的时候,把新值保存在这个位置。默认为undefined
eg:

var p = {};
Object.defineProperty(p, "name", {
 writable: false,
 value: 'nihao' 
})

2、访问器属性
访问器属性不包含数据值,他们包含一对儿getter和setter函数(不过,这两个函数都不是必须的)在读取访问器属性的时候会调用getter函数,这个函数负责返回有效的值。在写入访问器属性是,会调用setter函数并传入新值,这个函数负责决定如何处理数据
[ [ Configurable ] ] 表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问属性。默认为true
[ [ Enumerable] ] 表示能否通过for-in循环返回属性。默认为true
[ [ Get ] ] 在读取属性时调用的函数,默认为undefined
[ [ Set ] ] 在写入属性时调用的函数,默认为undefined
eg:

var p = {get: 0};
Object.defineProperty(p, "name", {
 get: function (){
 console.log('get');
 return this.get;
 },
 set: function (newVal) {
 console.log('set');
 this.get = newVal;
 }
})

3、读取属性的特性
Object.getOwnPropertyDescriptor(属性所在的对象, 属性名称);
返回值是一个对象,访问属性configurable 、enumerable、get、set四个属性,
如果是数值属性,返回的对象属性有configurable 、enumerable、writable、value四个属性
备注:
Object.defineProperties()函数可以定义多个属性
eg:

var p = {get: 0};
Object.defineProperties(p, {"name", {
 get: function (){
 console.log('get');
 return this.get;
 },
 set: function (newVal) {
 console.log('set');
 this.get = newVal;
 }
}, "age": {
 writable: true,
 value: 11
 }
})

文档

浅析ECMAScript中对象的两种属性

浅析ECMAScript中对象的两种属性:ECMAScript对象有两种属性,分别为数据属性和访问器属性,接下来我们就分别对着两种属性进行分析。1、数据属性数据属性包含一个数据值的位置。这个位置可以读取和写入值。数据属性有4个描述其行为的特性。[ [ Configurable ] ] 表示能否通过delete删
推荐度:
标签: 对象 属性 ec
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top