JavaScript 第二十四章(对象属性访问、设置及继承)

在JavaScript中,对象的属性访问和设置是日常编程中的基础操作,同时也涉及到对象的继承机制。了解这些概念对于编写高效和可维护的代码至关重要。我们将通过示例代码来详细解释这些知识点。

属性的访问

属性访问可以通过点操作符(.)或方括号操作符([])来完成。点操作符后面跟的是属性的标识符名称,而方括号内部是一个表达式,其结果应该是一个字符串,表示属性的键。例如:

let person = {
  name: "Alice",
  age: 25
};

console.log(person.name); // 使用点操作符
console.log(person['age']); // 使用方括号操作符

在上述代码中,我们访问了person对象的nameage属性。点操作符更简洁,但方括号操作符在处理动态属性名时更有优势。

设置属性的语法与访问属性类似,只是将其放在赋值操作的左侧:

person.name = "Bob"; // 使用点操作符
person['age'] = 30; // 使用方括号操作符

这里我们更新了person对象的nameage属性。

JavaScript对象可以作为关联数组使用,这意味着你可以使用动态生成的字符串作为属性名。这在处理不确定属性名的情况下非常有用,比如:

let customer = {
  'address0': '101 Main St',
  'address1': '102 Main St',
  'address2': '103 Main St'
};

for (let i = 0; i < 3; i++) {
  console.log(customer['address' + i]);
}

在这个例子中,我们使用了动态生成的属性名来访问customer对象的地址属性。

继承

继承是JavaScript对象的一个核心概念。对象可以从其原型对象继承属性。如果对象自身没有某个属性,它会尝试从原型链中查找这个属性。例如:

let animal = {
  eats: true
};

let rabbit = Object.create(animal);
console.log(rabbit.eats); // true

在这里,rabbit对象继承了animal对象的eats属性。

当你尝试设置一个对象的属性时,如果该对象已经有这个自有属性,那么这个属性的值会被更新。如果没有,JavaScript会在这个对象上创建一个新的属性。如果该属性存在于原型链中,新属性会遮蔽原型链中的属性。例如:

rabbit.eats = false;
console.log(rabbit.eats); // false
console.log(animal.eats); // true

在这个例子中,我们给rabbit对象添加了一个自有的eats属性,这个属性遮蔽了从animal继承的eats属性。

注意事项

访问不存在的属性不会报错,但会返回undefined。尝试在nullundefined上访问或设置属性会导致运行时错误。在严格模式下,尝试设置只读属性或在不可扩展的对象上添加新属性也会抛出错误。

你可能感兴趣的:(JavaScript探索之旅,javascript,开发语言,ecmascript,对象属性)