JavaScript 中继承机制怎么理解
javascript 的继承基于原型链(prototype chain),通过 __proto__ 属性链接对象与构造函数,实现属性和方法的共享。核心做法是设置子类的 prototype 指向父类实例或对象,并在子类构造函数中调用 super() 执行父类初始化逻辑。

ES5 经典原型链继承如何实现
在 ES5 环境中,最标准的做法是将子类的 prototype 设置为父类的一个新实例,从而建立原型链连接。这种方式能完美继承父类原型上的方法,但无法直接传递参数给父类构造函数,且所有子类实例会共享父类引用类型的属性。

function Parent(name) { this.name = name; } Parent.prototype.sayName = function() { console.log(this.name); }; function Child(name, age) { Parent.call(this, name); // 借用构造函数继承属性 this.age = age; } Child.prototype = new Parent(); // 原型链继承方法 Child.prototype.constructor = Child; var c = new Child('Alice', 10); c.sayName(); // 输出: Alice
ES6 Class 语法糖底层原理是什么
ES6 的 class 关键字本质上是 ES5 原型链和构造函数模式的语法糖。其底层依然依赖 Object.setPrototypeOf 来建立静态继承关系,以及 super() 调用父类构造函数来建立实例继承关系。使用 extends 可以简化代码结构,使继承逻辑更加直观。

class Parent { constructor(name) { this.name = name; } sayName() { console.log(this.name); } } class Child extends Parent { constructor(name, age) { super(name); // 必须调用 super 才能访问 this this.age = age; } } var c = new Child('Bob', 20); c.sayName(); // 输出: Bob
原型链断裂时如何修复
当手动修改 Child.prototype 为普通对象而非父类实例时,原型链会被切断,导致子类无法访问父类原型上的方法。修复方法是重新指定 Child.prototype.constructor 并恢复原型链指向,或者直接使用 Object.create(Parent.prototype) 创建干净的中间对象作为原型。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











