首页 > 代码库 > Javascript实现继承

Javascript实现继承

在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼。压个啥样,就得是个啥样,不能随便动,动一动就坏了。
而在Javascript中,没有模子,月饼被换成了面团,你可以捏成自己想要的样子。对象属性,方法不合适,可以修改。没有的方法,可以自己创建,发挥的自由度很大。

Javascript中没有类,但可以把函数当类使,被用来当做类构造器的函数就叫构造函数
构造函数,函数名首字母大写,内部使用了this对构造函数使用new运算符,就能生成实例,并且this会指向实例对象。

许多面向对象语言都支持两种继承方式:接口继承实现继承
接口继承:只继承方法签名;
实现继承:继承实际的方法。
JavaScript本身不是面向对象的语言,而是基于对象的语言。在ECMAScript中,无法实现接口继承,只支持实现继承,而实现继承主要是依靠原型链。每个函数都有call,apply方法,都有length,arguments,caller等属性。为什么每个函数都有?这肯定是"继承"的。函数由Function函数创建,因此继承Function.prototype中的方法。
ES5继承是先创建子类的实例对象this,再向this对象中添加父类的方法;
ES6继承是先创造父类的实例对象this,再用子类的构造函数修改this。

ECMAScript继承主要分两大类:引用对象继承实例对象继承
一、引用对象继承
子引用类型继承父引用类型,然后通过子引用类型生成的实例对象,具有父引用类型的特性。

Javascript实现继承