在 JavaScript 中,属性访问器是允许您访问对象属性的机制。有两种主要方法可以做到这一点:点表示法和括号表示法。
点表示法是访问属性的最常见方法。您只需使用点 (.) 后跟属性名称即可。
当属性名称是动态的或不是有效的标识符(例如,它包含空格或特殊字符)时,括号表示法非常有用。您使用方括号 ([]) 并将属性名称作为字符串传递
该语言提供了称为对象文字表示法的语法,用于快速创建对象。对象字面量用花括号表示。以下示例创建一个没有属性的空对象。
var animal = {};
在大括号内,属性及其值被指定为键/值对列表。
键可以是字符串或标识符,而值可以是任何有效的表达式。键/值对列表以逗号分隔,每个键和值用冒号分隔。
以下示例使用文字表示法创建一个具有三个属性的对象。
第一个属性,动物,占据第一。
第二个属性 dolphin 使用字符串指定,并且还存储字符串值。第三个属性,哺乳动物,存储一个空对象。
var animal = { dolphin: 1, "swim": "some string", mammal: { } };
每个属性都写在单独的行上并缩进。整个对象可以写在一行上,但这种格式的代码更具可读性。对于具有许多属性的对象或嵌套对象尤其如此。
第一个也是最常见的,被称为点符号。
在点表示法下,通过给出宿主对象的名称、后跟句点(或点)、再后跟属性名称来访问属性。
点表示法是访问属性的最常见方法。您只需使用点 (.) 后跟属性名称即可。例如:
以下示例显示如何使用点表示法读取和写入属性。如果对象.dolphin
最初的值为一,执行该语句后其值为二。
var animal = {};
访问对象属性的语法称为括号表示法。在方括号中,对象名称后面跟着一组方括号。
在方括号内,属性名称被指定为字符串。
前面的点表示法示例已在下面重写为使用括号表示法。虽然代码可能看起来不同,但它在功能上与前面的示例相同。
var animal = { dolphin: 1, "swim": "some string", mammal: { } };
括号表示法比点表示法更具表现力,因为它允许变量指定全部或部分属性名称。
这是可能的,因为 JavaScript 解释器会自动将方括号内的表达式转换为字符串,然后检索相应的属性。
以下示例展示了如何使用括号表示法动态创建属性名称。在示例中,属性名称 foo 是通过将变量 d 的内容与字符串“dolphin”连接起来创建的。
animal.dolphin = animal.dolphin + 1;
括号表示法还允许属性名称包含点表示法中禁止的字符。
例如,以下语句在括号表示法中是完全合法的。但是,如果您尝试以点表示法创建相同的属性名称,则会遇到语法错误。
object["dolphin"] = object["dolphin"] + 1;
嵌套对象的属性可以通过将点和/或括号引用链接在一起来访问。
例如,以下对象包含一个名为 dolphin 的嵌套对象,其中包含另一个名为哺乳动物的对象,该对象具有一个名为years 的属性,该属性的值为 1。
var d = "d"; object[d + "dolphin"] = "bar";
以下表达式访问嵌套属性years。第一个表达式使用 点表示法 ,而第二个表达式使用 方括号表示法 。
第三个表达式结合了两种表示法来获得相同的结果.
object["!@#$%^&*()."] = true;
如果使用不当,像上一个示例中所示的表达式可能会导致性能下降。
评估每个点或括号表达式需要时间。
如果多次使用同一属性,则更有意义的是访问该属性一次,然后将该值存储在局部变量中以供将来使用。以下示例在循环内多次使用 bar。然而,bar 不是浪费时间一遍又一遍地计算相同的值,而是存储在局部变量中。
var animal = {};
当函数用作对象属性时,它被称为方法。与属性一样,方法也可以用对象文字表示法指定。以下示例展示了如何实现这一点。
var animal = { dolphin: 1, "swim": "some string", mammal: { } };
方法也可以使用点和括号表示法调用。
以下示例使用两种表示法调用上一个示例中的 sum() 方法。
animal.dolphin = animal.dolphin + 1;
对象文字表示法对于创建新对象很有用,但它不能向现有对象添加属性或方法。
幸运的是,向对象添加新数据就像创建赋值语句一样简单。
以下示例创建一个空对象。
然后使用赋值语句添加两个属性(海豚和哺乳动物)以及方法年。
请注意,此示例使用 点表示法 ,但 括号表示法 也同样有效。
object["dolphin"] = object["dolphin"] + 1;
总结
对象是由基元和其他对象构建的复合数据类型。对象的构建块通常称为其字段或属性。属性用于描述对象的某些方面。例如,属性可以描述列表的长度、狗的颜色或人的出生日期。
因此 JavaScript 对象语法对于理解至关重要,因为它是语言的基础。
首先,您需要先了解对象,然后才能了解面向对象的编程。
编码快乐!
以上是属性访问器的详细内容。更多信息请关注PHP中文网其他相关文章!