Skip to content

访问器属性 ​

本节目标:理解“访问器属性”的核心思路,并能把它用于实际开发或面试表达。 访问器属性不能直接定义,必须使用Object.defineProperty()来定义

访问器属性不包含数据值; 它们包含一对儿getter和setter函数。

在读取访问器属性时,会调用getter函数,这个函数负责返回有效的值; 在写入访问器属性时,会调用setter函数,这个函数负责决定如何处理数据。

不一定非要同时指定getter和setter。 只指定getter意味着属性不能写,尝试写入属性会被忽略,严格模式下会报错。 只指定setter意味着属性不能读,尝试读取属性会返回undefined,严格模式下会报错。

访问器属性有如下4个特性: [[Configurable]]:表示

  1. 能否通过delete删除属性,从而重新定义属性;
  2. 能否修改属性的特性,如Configurable和Enumerable;
  3. 能否把属性修改为数据属性;
  4. 直接在对象上定义的属性,默认值为true。使用Object.defineProperty()方法定义的访问器属性此值默认为false。

[[Enumerable]]**:**表示:

  • 能否通过for-in循环返回属性;

[[Get]]:在读取属性时调用的函数。默认值为undefined。 [[Set]]**:**在写入属性时调用的函数。默认值为undefined。

本站总访问 — 次