JavaScript 原型链与继承机制
原型链是 JavaScript 实现继承的核心机制。
1. 原型与 proto
function Animal(name) {
this.name = name;
}
Animal.prototype.speak = function() {
console.log(this.name + ' 叫了一声');
};
const dog = new Animal('旺财');
dog.speak(); // 旺财 叫了一声2. 原型链
dog.__proto__ === Animal.prototypeAnimal.prototype.__proto__ === Object.prototypeObject.prototype.__proto__ === null
3. 继承方式(ES6 class)
class Animal {
constructor(name) { this.name = name; }
speak() { console.log(this.name + ' 叫'); }
}
class Dog extends Animal {
bark() { console.log('汪汪'); }
}4. 组合继承(原型链 + 构造函数)
function Dog(name) {
Animal.call(this, name);
}
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;理解原型链有助于排查复杂继承问题。
