时间:2021-07-01 10:21:17 帮助过:2人阅读
最基础的原型链继承在这里就不复述了,主要讲一下其他的继承模式。
1.借用构造函数继承
好处:可以为子类型传递参数,如图中的name属性。
坏处:1.方法在构造函数中定义,无法复用。2.超类型原型中定义的方法对子类型是不可见的。
2.组合继承(综合原型链与构造函数)
好处:不同的子类既可以拥有自己的属性,也可以使用相同的方法。
坏处:这种方法需要调用2次超类型的构造函数,同名的属性方法会被覆盖一次。
3.原型式继承 (类似Object.create())
使用这种方法继承需要有一个对象作为原型对象,所以所有继承其的子类型的属性方法都是共用的。
ES5通过新增Object.creatr()方法规范了原型式继承。
4.寄生式继承 (可以设置私有方法的原型式继承)
好处:这种方式弥补了原型式继承只有公有属性方法的缺陷,使子类型能有私有属性方法。
5.寄生组合式继承
本方法用于弥补组合继承中属性方法覆盖的问题。
用上图代码代替组合继承中 Son.prototype=new Father(); 这段代码。这样只需调用一次父类型的构造函数,避免了创造多余不必要的属性方法,并且保持了原型链不改变,是一种理想的引用类型继承方法。
关于js继承模式先粗略给大家介绍这么多,相信对大家有所帮助,更多信息请继续关注脚本之家网站。