JavaScript 原型鏈是實現對象與對象之間繼承關系的核心機制。這里將簡要介紹如何使用原型鏈:
首先,我們需要創建一個構造函數,它將作為我們創建的對象的基礎。構造函數是一個普通的 JavaScript 函數,但它用于初始化新創建的對象。
function Person(name, age) {
this.name = name;
this.age = age;
}
接下來,我們可以將方法添加到構造函數的原型對象(prototype
)上。這樣,所有通過此構造函數創建的對象都可以訪問這些方法。
Person.prototype.sayHello = function() {
console.log("Hello, my name is " + this.name);
};
現在,我們可以使用構造函數創建對象實例,并通過原型鏈訪問在原型上定義的方法。
var person1 = new Person("Alice", 30);
person1.sayHello(); // 輸出 "Hello, my name is Alice"
要使用原型鏈實現繼承,我們可以在一個構造函數的原型對象上設置另一個構造函數的引用。這樣,子類可以訪問父類的屬性和方法。
function Student(name, age, course) {
Person.call(this, name, age); // 調用父類構造函數并繼承其屬性
this.course = course;
}
// 設置原型鏈
Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student; // 修復構造函數指向問題
// 在子類原型上添加特定于子類的方法
Student.prototype.study = function() {
console.log(this.name + " is studying " + this.course);
};
var student1 = new Student("Bob", 20, "JavaScript");
student1.sayHello(); // 輸出 "Hello, my name is Bob"
student1.study(); // 輸出 "Bob is studying JavaScript"
通過這種方式,我們可以利用原型鏈在 JavaScript 中實現對象之間的繼承和方法共享。