<div>、<p>、<table>、<ul>
<span>、<img>、<a>、<input>
继承方式 | 优点 | 缺点 |
---|---|---|
原型和原型链继承:把实例的父类给子函数的原型 | 优点:1、非常纯粹的继承关系,实例是子类的实例,也是父类的实例2、类新增原型方法和属性,子类都能访问到3、简单,易于实现 | 缺点:1、因为原型对象的属性是共享的,修改一个对象属性,其他对象的该属性也变了2、创建子类实例时,无法向父类构造函数传递参数 |
构造函数继承:在子类中调用父类.call()。复制一份父类的属性或者方法给子类 | 优点:1、 解决了子类实例共享父类引用属性的问题 2、创建子类实例时,可以用父类构造函数传递参数 | 缺点:1、无法实现复用,每一个子类实例都有一个新的run函数,如果实例对象多了,内存消耗过大。 |
组合继承:原型链和构造函数组合继承 | 优点:1、不存在引用属性共享的问题 2、可传递参数,且方法可以复用 | 缺点: 1、 子类原型上有一份多余的父类实例的属性。 |