属性(JavaScript)

JavaScript 属性对象 的成员,它将键与值关联。JavaScript 对象是一种数据结构,用于存储属性的集合。

属性由以下部分组成:

  • 名称(也称为),可以是 字符串 或者 符号
  • ,可以是任何 JavaScript 值。将函数作为其值的属性也可以称为 方法
  • 一些属性,用于指定如何读取和写入属性。属性可以具有 configurableenumerablewritable 属性。

访问器属性 没有实际的“值”。值通过一对函数间接表示,一个(获取器)在读取值时调用,另一个(设置器)在设置值时调用。但是,访问器属性在表面上表现得像普通的属性,因为获取器和设置器函数是自动调用的,通常对 JavaScript 代码是透明的。

属性的值(包括获取器和设置器)及其属性存储在称为属性描述符的数据记录中。许多方法,例如 Object.getOwnPropertyDescriptor()Object.defineProperty(),使用属性描述符。

术语属性本身不对应于任何 JavaScript 值,它是一个抽象的概念。例如,在以下代码中

js
const obj = {
  a: 1,
  b() {},
};

对象 obj 具有两个属性。第一个属性的键为 "a",值为 1。第二个属性的键为 "b",值为函数(使用 方法语法)。"a"1"b"function 关联是对象的属性。

的上下文中,属性可以分为实例属性(由每个实例拥有)和静态属性(由类拥有并保存所有实例共有的数据)。在 继承 的上下文中,属性也可以分为自身属性(由对象本身拥有)和继承属性(由对象原型链中的对象拥有)。

有关读取和写入属性的更多信息,请参阅 处理对象

另请参见