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 中实现对象之间的继承和方法共享。