在 JavaScript 中,属性访问器是允许您访问对象属性的机制。有两种主要方法可以做到这一点:点表示法和方括号表示法。
点表示法是访问属性的最常见方法。您只需使用点 (.) 后跟属性名称即可。
当属性名称是动态的或不是有效的标识符(例如,它包含空格或特殊字符)时,括号表示法很有用。您使用方括号 ([]) 并将属性名称作为字符串传递
该语言提供了称为对象文字表示法的语法,用于快速创建对象。对象字面量用花括号表示。以下示例创建一个没有属性的空对象。
var animal = {};
在花括号内,属性及其值被指定为键/值对列表。
键可以是字符串或标识符,而值可以是任何有效的表达式。键/值对列表以逗号分隔,每个键和值用冒号分隔。
以下示例使用文字表示法创建一个具有三个属性的对象。
第一个属性,动物,占据第一位。
第二个属性 dolphin 使用字符串指定,并且还存储字符串值。第三个属性,哺乳动物,存储一个空对象。
var animal = { dolphin: 1, "swim": "some string", mammal: { } };
每个属性都写在单独的行上并缩进。整个对象可以写在一行上,但这种格式的代码更具可读性。对于具有许多属性的对象或嵌套对象尤其如此。
第一个也是最常见的,被称为点符号。
在点表示法下,通过给出主机对象的名称、后跟句点(或点)、再后跟属性名称来访问属性。
点表示法是访问属性的最常见方法。您只需使用点 (.) 后跟属性名称即可。例如:
以下示例显示如何使用点表示法读取和写入属性。如果对象.dolphin
最初的值为1,执行该语句后其值将变为2。
animal.dolphin = animal.dolphin 1;
访问对象属性的语法称为括号表示法。在括号表示法中,对象名称后跟一组方括号。
在 方括号 内,属性名称指定为 字符串 。
前面的点表示法示例已在下面重写为使用括号表示法。虽然代码可能看起来不同,但它在功能上与前面的示例相同。
object["dolphin"] = object["dolphin"] 1;
括号表示法比点表示法更具表现力,因为它允许变量指定全部或部分属性名称。
这是可能的,因为 JavaScript 解释器会自动将方括号内的表达式转换为字符串,然后检索相应的属性 。
以下示例演示如何使用括号表示法动态创建属性名称。在示例中,属性名称 foo 是通过将变量 d 的内容与字符串“dolphin”连接起来创建的。
var d = "d"; object[d "dolphin"] = "bar";
括号表示法还允许属性名称包含点表示法中禁止的字符。
例如,以下语句在括号表示法中是完全合法的。但是,如果您尝试以点表示法创建相同的属性名称,则会遇到语法错误。
object["!@#$%^&*()."] = true;
嵌套对象的属性可以通过将点和/或括号引用链接在一起来访问。
例如,以下对象包含一个名为 dolphin 的嵌套对象,该对象包含另一个名为哺乳动物的对象,该对象具有一个名为years 的属性,该属性的值为 one。
var animal = { dolphin: { mammal: { years: 1 } } };
以下表达式访问嵌套属性years。第一个表达式使用 点表示法 ,而第二个表达式使用 方括号表示法 。
第三个表达式结合了 两种表示法以获得相同的结果.
animal.dolphin.mammal.lungs; animal["dolphin"]["mammal"]["years"]; animal["dolphin"].mammal["years"];
如果使用不当,像上一个示例中所示的表达式可能会导致性能下降。
计算每个 点或括号表达式 需要时间。
如果多次使用同一属性,则更有意义的是访问该属性一次,然后将该值存储在局部变量中以供将来使用。以下示例在循环内多次使用 bar。然而,bar 不是浪费时间反复计算相同的值,而是存储在局部变量中。
var years = animal.dolphin.mammal.years; var count = 0; for (var i = 0; i函数作为方法
当函数用作对象属性时,它被称为方法。与属性一样,方法也可以用对象文字表示法指定。以下示例显示了这是如何完成的。
var animal = { sum: function(dolphin, years) { return dolphin years; } };方法也可以使用点和括号表示法调用。
以下示例 使用两种表示法调用 上一个示例中的 sum() 方法。dolphin.sum(1, 2); dolphin["sum"](1, 2);添加属性和方法
对象字面量表示法对于创建新对象很有用,但是它不能向现有对象添加属性或方法。
幸运的是,向对象添加新数据就像创建赋值语句一样简单。以下示例创建一个空对象。
然后使用赋值语句添加两个属性(海豚和哺乳动物)和方法年。
请注意,此示例使用 点表示法 ,但 括号表示法 也同样有效。var animal = {}; animal.dolphin = 1; animal.mammal = null; animal.years = function() { return "I am 5 years()"; };概括
对象是由基元和其他对象构建的复合数据类型。对象的构建块通常称为其字段或属性。属性用于描述对象的某些方面。例如,属性可以描述列表的长度、狗的颜色或人的出生日期。
因此,JavaScript 对象语法对于理解至关重要,因为它是该语言的基础。
首先,您需要先了解对象,然后才能了解面向对象的编程。
快乐编码!
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3