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