组合

原型式继承存在的问题

举例说A继承与B:

A.prototype = new B();

问题1:

这样的话用A创建的实例,就会共享B中的属性和方法。如果属性为引用类型进行改变的话(这里的改变是指,例如数组中元素的改变)。那么新创建的也会跟着改变。

为什么不是引用类型的就没事呢?

因为你改变的时候,其实是给子类添加了一个属性,并不是改变父类中的属性值。

上边改变的是父类中引用类型中的值,跟着都会改变。

问题2:

如果父类的构造函数有参数,在执行继承那一步[A.prototype = new B(12) ],这里只能传递一个死的参数。

原型式继承存在问题的解决

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容