小兵讲ES —— 拾遗篇之赋值操作与原型链查找
2023-09-08 09:28:34
变量赋值与原型链查找
在 JavaScript 中,变量赋值操作是通过将一个值存储在内存中并将其与一个变量名相关联来完成的。当我们访问一个变量时,JavaScript 会在内存中查找与该变量名相关联的值并将其返回给我们。
原型链查找是 JavaScript 中一种查找属性值的过程。当我们访问一个对象的属性时,JavaScript 会首先在该对象中查找该属性。如果找不到,它会沿着原型链向上查找,直到找到该属性或到达原型链的末端。
赋值操作与原型链查找的关系
赋值操作和原型链查找之间存在着密切的关系。当我们对一个变量进行赋值操作时,JavaScript 会将该值存储在内存中并将其与该变量名相关联。如果该变量是一个对象的属性,那么该值也会被存储在该对象中。
当我们访问一个对象的属性时,JavaScript 会首先在该对象中查找该属性。如果找不到,它会沿着原型链向上查找,直到找到该属性或到达原型链的末端。如果该属性在原型链中被找到,那么该属性的值就会被返回给我们。
实例
为了更好地理解赋值操作和原型链查找之间的关系,我们来看一个简单的例子。假设我们有一个名为 Person 的类,该类有一个名为 name 的属性。我们还可以创建一个名为 Student 的类,该类继承自 Person 类并具有一个名为 school 的属性。
class Person {
constructor(name) {
this.name = name;
}
}
class Student extends Person {
constructor(name, school) {
super(name);
this.school = school;
}
}
const person = new Person('John');
const student = new Student('Jane', 'MIT');
console.log(person.name); // John
console.log(student.name); // Jane
console.log(student.school); // MIT
在这个例子中,当我们访问 person.name 时,JavaScript 会在 Person 类中找到 name 属性并将其值返回给我们。当我们访问 student.name 时,JavaScript 会首先在 Student 类中查找 name 属性,但找不到。因此,它会沿着原型链向上查找,直到在 Person 类中找到 name 属性并将其值返回给我们。当我们访问 student.school 时,JavaScript 会在 Student 类中找到 school 属性并将其值返回给我们。
结论
赋值操作和原型链查找是 JavaScript 中两个重要的概念。通过理解这两个概念之间的关系,我们可以编写出更健壮、更易维护的代码。