视频字幕
继承是面向对象编程的核心概念之一。它允许一个对象继承另一个对象的属性和方法,实现代码重用和层级关系的建立。子对象可以获得父对象的所有功能,同时还能添加自己的新功能。
JavaScript 是一种基于原型的语言。每个对象都有一个内部属性,通常表示为双方括号 Prototype,指向它的原型对象。当访问对象的属性或方法时,如果对象本身没有,JavaScript 会沿着原型链向上查找,直到找到该属性或到达原型链顶端的 null。
通过构造函数可以创建实例对象。实例对象的双方括号 Prototype 属性会指向构造函数的 prototype 属性。这样,所有实例都可以共享原型上的方法和属性,实现了继承机制。这种方式不仅节省内存空间,还可以动态地为所有实例添加新功能。
ES6 引入了 class 关键字,提供了更接近传统类继承的语法糖。使用 class 定义类,extends 实现继承,super 调用父类的构造函数或方法。虽然语法更清晰易懂,但其底层机制仍然是基于原型链的继承。
总结一下 JavaScript 的继承机制:JavaScript 继承基于原型链,对象通过双方括号 Prototype 链接形成继承关系。构造函数的 prototype 属性实现方法共享,ES6 的 Class 语法提供了更清晰的继承写法。原型继承机制实现了代码重用和功能扩展,是 JavaScript 面向对象编程的核心特性。