标签:efi value setter 获取 == 描述符 删除 引擎 对象
对象 === 一组属性的无需集合 每个属性和方法都有一个标识名称,名称映射到一个值。
创建方式:1 new Object() 创建一个Object实例 2 对象字面量 {} 二者等价
对象属性都有自己的特征。特征决定行为。js用一些内部特性描述对象属性特征。内部特性由js实现引擎的规定义。不能直接访问到。 对象属性有数据属性和访问器属性。
数据属性:四个特性:
[[Configurable]] (配置权限:属性可否被delete删除并重新定义。是否可以改成访问器属性。是否可以修改特性。默认为true)//若修改为false,就不能在变成true,否则报错。
[[Enumberable]] (遍历权限: 对象属性是否可以使用for in 进行遍历 默认为true)
[[writable]] (改值权限:对象属性的值能否被修改 默认为true)
[[value]] (读取和写入值的位置: 包含实际的值 默认undefined)
修改一个对象属性的方法: Object.definePrototype() 方法 接受三个参数:对象名,对象属性名,描述符对象(四个特性):{writable:true,value:‘搞事情‘}
如果描述符对象没有设置,则除value外另外3个特性都默认false
访问器属性:不包含数值。包含一个获取(getter)函数和一个设置(setter)函数。读取访问器属性时:调用getter函数,会返回一个有效的值。写入访问器属性时,调用setter函数并传入新值。这个函数决定对数据做出什么修改。
四个特性:
[[Configurable]]:上同
[[Enumberable]]:上同
[[Get]]: 获取函数,读取属性时调用。默认undefined
[[Set]]:设置函数,写入属性时调用。默认undefined
访问器属性必须通过Object.definePrototype()方法进行定义。 属性只定义获取函数。则该属性只读。
标签:efi value setter 获取 == 描述符 删除 引擎 对象
原文地址:https://www.cnblogs.com/jgnba/p/14630339.html