属性(JavaScript)
JavaScript 属性 是 对象 的成员,它将键与值关联。JavaScript 对象是一种数据结构,用于存储属性的集合。
属性由以下部分组成:
- 名称(也称为键),可以是 字符串 或者 符号。
- 值,可以是任何 JavaScript 值。将函数作为其值的属性也可以称为 方法。
- 一些属性,用于指定如何读取和写入属性。属性可以具有
configurable
、enumerable
和writable
属性。
访问器属性 没有实际的“值”。值通过一对函数间接表示,一个(获取器)在读取值时调用,另一个(设置器)在设置值时调用。但是,访问器属性在表面上表现得像普通的属性,因为获取器和设置器函数是自动调用的,通常对 JavaScript 代码是透明的。
属性的值(包括获取器和设置器)及其属性存储在称为属性描述符的数据记录中。许多方法,例如 Object.getOwnPropertyDescriptor()
和 Object.defineProperty()
,使用属性描述符。
术语属性本身不对应于任何 JavaScript 值,它是一个抽象的概念。例如,在以下代码中
js
const obj = {
a: 1,
b() {},
};
对象 obj
具有两个属性。第一个属性的键为 "a"
,值为 1
。第二个属性的键为 "b"
,值为函数(使用 方法语法)。"a"
– 1
、"b"
– function
关联是对象的属性。
在 类 的上下文中,属性可以分为实例属性(由每个实例拥有)和静态属性(由类拥有并保存所有实例共有的数据)。在 继承 的上下文中,属性也可以分为自身属性(由对象本身拥有)和继承属性(由对象原型链中的对象拥有)。
有关读取和写入属性的更多信息,请参阅 处理对象。
另请参见
- Property (programming) on Wikipedia
- 面向对象 JavaScript 入门
- 对象属性
- 属性的可枚举性和所有权