JavaScript 原型链是实现对象与对象之间继承关系的核心机制。这里有一个简单的例子来解释原型链的工作原理:
- 创建一个构造函数
Person
:
function Person(name, age) {
this.name = name;
this.age = age;
}
- 在
Person
的原型上添加一个方法sayHello
:
Person.prototype.sayHello = function() {
console.log('Hello, my name is ' + this.name);
};
- 创建一个新的对象
student
,并将其原型设置为Person.prototype
:
var student = Object.create(Person.prototype);
此时,student
对象会继承 Person.prototype
上的方法和属性。
- 为
student
对象添加自己的属性和方法:
student.name = 'John';
student.age = 20;
student.sayHello = function() {
console.log('Hello, I am a student and my name is ' + this.name);
};
现在,student
对象有了 Person.prototype
上的 sayHello
方法,同时也拥有了自己特有的属性和方法。
这就是 JavaScript 原型链的简单实现。当一个对象需要访问另一个对象的属性和方法时,它会沿着原型链查找。如果找到相应的属性和方法,就会停止查找;如果没有找到,会继续沿着原型链向上查找,直到找到或者到达原型链的顶端(null
)。