寒假生活指导 12
JavaScript 原型链:对象继承的核心机制
JavaScript 采用原型继承实现对象间的属性和方法共享,这是其面向对象编程的核心特性。理解原型链需掌握三个关键概念:
- 构造函数与原型对象
每个构造函数(如 function Person() {})自动拥有 prototype 属性,指向原型对象
实例对象(如 const p = new Person())通过 proto 访问原型
function Dog(name) {
this.name = name;
}
Dog.prototype.bark = function() {
console.log("汪汪!");
};
const myDog = new Dog("阿黄");
myDog.bark(); // 通过原型链调用方法
-
原型链结构
访问对象属性时,查找顺序:
实例自身 → 构造函数原型 → 父级原型 → ... → Object.prototype → null
手动修改原型链的典型方式:
Child.prototype = Object.create(Parent.prototype); -
ES6 类语法糖
class 本质仍是基于原型的继承:
class Animal {
constructor(name) {
this.name = name;
}
eat() { /* 方法存入原型 */ }
}
class Cat extends Animal { // 继承语法
meow() { /* ... */ }
}
实际应用场景
方法复用:多个实例共享原型方法,节省内存
扩展内置对象:如给数组添加自定义方法
实现继承:构建多层级的对象关系
注意事项
避免直接修改 Object.prototype(污染全局)
谨慎使用 proto(推荐 Object.getPrototypeOf())
原型链过长会影响性能

浙公网安备 33010602011771号