您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

浅析ECMAScript中对象的两种属性

2026/4/2 11:24:07发布16次查看
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 5中的属性描述符详解_基础知识
以上就是浅析ecmascript中对象的两种属性的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product