首页 > web前端 > js教程 > 正文

属性访问器

DDD
发布: 2024-10-26 05:45:31
原创
1003 人浏览过

Property accessors

了解 JavaScript 中的属性访问器

在 JavaScript 中,属性访问器是允许您访问对象属性的机制。有两种主要方法可以做到这一点:点表示法和括号表示法。

点符号

点表示法是访问属性的最常见方法。您只需使用点 (.) 后跟属性名称即可。

括号表示法

当属性名称是动态的或不是有效的标识符(例如,它包含空格或特殊字符)时,括号表示法非常有用。您使用方括号 ([]) 并将属性名称作为字符串传递

在 JavaScript 中创建对象

该语言提供了称为对象文字表示法的语法,用于快速创建对象。对象字面量用花括号表示。以下示例创建一个没有属性的空对象。

var animal = {};

登录后复制
登录后复制
登录后复制

在大括号内,属性及其值被指定为键/值对列表。
键可以是字符串或标识符,而值可以是任何有效的表达式。键/值对列表以逗号分隔,每个键和值用冒号分隔。

以下示例使用文字表示法创建一个具有三个属性对象。

第一个属性,动物,占据第一。
第二个属性 dolphin 使用字符串指定,并且还存储字符串值。第三个属性,哺乳动物,存储一个空对象。

var animal = {
  dolphin: 1,
  "swim": "some string",
  mammal: {
  }
};

登录后复制
登录后复制
登录后复制

每个属性都写在单独的行上并缩进。整个对象可以写在一行上,但这种格式的代码更具可读性。对于具有许多属性的对象或嵌套对象尤其如此。

JavaScript 提供了两种用于访问对象属性的表示法。

第一个也是最常见的,被称为点符号
在点表示法下,通过给出宿主对象的名称、后跟句点(或点)、再后跟属性名称来访问属性。

点符号

点表示法是访问属性的最常见方法。您只需使用点 (.) 后跟属性名称即可。例如:

以下示例显示如何使用点表示法读取和写入属性。如果对象.dolphin
最初的值为一,执行该语句后其值为二。

  • 请注意,如果animal.dolphon 还没有值,那么它将是未定义的。
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 对象语法对于理解至关重要,因为它是语言的基础。
首先,您需要先了解对象,然后才能了解面向对象的编程。

  • 点表示法:当属性名称是有效标识符时使用。
  • 括号表示法:当属性名称是动态或无效标识符时使用。 这些访问器是 JavaScript 中有效操作对象及其属性的基础。

编码快乐!

以上是属性访问器的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!