接上篇:
|
|
在创建子类型的实例时,不能向父类的构造函数中传递参数,更确切的表述为:没有办法在不影响所有对象实例的情况下,给父类的构造函数传递参数.
为什么无法传参? 可以自己试试,看看是否能实现.
因此,一般情况下很少单独使用原型链实现继承.
现在介绍”借用构造函数”实现继承的方法:
|
|
这里虽然使用call方法实现继承的基本目的,可是instance1却不是SuperType的实例了(上面最后一行),对比下本文开始的一段代码.所以,上面这段代码本质是:在SubType创建实例的时候调用了SuperType的构造函数(在实例的独立的作用域链内),严格来说,SuperType并不是SubType的父类.
这只是借用了”父类”SuperType的构造函数而已(可参照另一片文章).所以,这种方式又被称为“伪造对象“或“经典继承”.