如何深入理解JavaScript面向对象中的继承机制及其应用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计834个文字,预计阅读时间需要4分钟。
一、继承的概念 + 子类共享父类的数据和方法的行性行为,即称为继承。
二、如何实现继承?探究JavaScript继承的本质 + 2.1 构造函数之间的复制粘贴 + 第一条路径是通过构造函数来继承,这可以通过构造函数来实现继承。
一、继承的概念
子类共享父类的数据和方法的行为,就叫继承。
二、E55如何实现继承?探索JavaScript继承的本质
2.1构造函数之间的“复制粘贴”
第一条路是通过构造函数来继承,这可以理解为子类直接复制了父类构造函数的代码,然后按照一定的规矩“粘贴”在自己的构造函数中,为己所用。举个例子:
如果A要继承B的属性,是不是直接把this.name = name复制粘贴到A函数就可以了?简单粗暴。
所以在A中,直接执行B函数,不就等于执行了this.name = name吗。
直接这样尝试下,发现是不行的,这是因为B中的this指向B的实例化对象,A中的this指向A的实例化对象,所以要统一this的指向。
这样,就完成了一次合乎规范的构造函数之间的“代码复制粘贴”,也就是继承。这其实也是后面ES6中super关键字的实现原理。
本文共计834个文字,预计阅读时间需要4分钟。
一、继承的概念 + 子类共享父类的数据和方法的行性行为,即称为继承。
二、如何实现继承?探究JavaScript继承的本质 + 2.1 构造函数之间的复制粘贴 + 第一条路径是通过构造函数来继承,这可以通过构造函数来实现继承。
一、继承的概念
子类共享父类的数据和方法的行为,就叫继承。
二、E55如何实现继承?探索JavaScript继承的本质
2.1构造函数之间的“复制粘贴”
第一条路是通过构造函数来继承,这可以理解为子类直接复制了父类构造函数的代码,然后按照一定的规矩“粘贴”在自己的构造函数中,为己所用。举个例子:
如果A要继承B的属性,是不是直接把this.name = name复制粘贴到A函数就可以了?简单粗暴。
所以在A中,直接执行B函数,不就等于执行了this.name = name吗。
直接这样尝试下,发现是不行的,这是因为B中的this指向B的实例化对象,A中的this指向A的实例化对象,所以要统一this的指向。
这样,就完成了一次合乎规范的构造函数之间的“代码复制粘贴”,也就是继承。这其实也是后面ES6中super关键字的实现原理。

