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
)。