ES5与ES6的类的继承,以及ES5继承方式有哪些?
ES5中:
1、原型链继承
原型链继承的核心:将父类的实例作为子类的原型
原型链式继承模式实现了子类对父类的原型的继承,但是,原型链式继承并没有实现代码的复用,且
如果原型中包含引用类型值,那么所有的实例会共享这个属性。
2、构造函数
优点:构造函数模式继承实现了代码的复用;缺点:不能继承借用的构造函数的原型,只能借用构造
函数本身的属性和方法;每次构造函数都要多走一个函数
3、组合继承
组合继承,既能达到对父类属性的继承,也能继承父类原型上的方法;父类属性继承也不会在所有子
类的实列上共享;唯一缺点,子类原型上有父类构造函数的属性,也就是多了一份属性
4、寄生组合继承
寄生组合式继承是对组合继承的进一步优化 如果所有继承该父类的子类对象的原型都指向同一个了
,显然是错误的;不能直接继承 ,可以间接继承xxx.prototype ;我们让一个函数去指向
xxx.prototype,然后让xxx.prototype指向这个函数产生的对象 .
ES6中:
1、类的constructor方法
constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有
constructor方法,如果没有显式定义,一个空的constructor方法会被默认添加。
2、类的继承
在子类的构造函数中,如果显示声明了constructor,则必须要显示的调用super函数,只有调用
super之后,才可以使用this关键字,否则会报错。
:enabled 匹配所有可用元素 :disabled 匹配所有不可用元素 :checked 匹配所有选中的被选中元素(复选框、单选框等,select中的option) :selected 匹配所有选中的option元素 $.escapeSelector(selector) className或IDName是有特殊符号
3、类的prototype属性和proto属性
ES5继承方式:
1、原型链继承
2、借用构造函数继承
3、组合继承
4、原型式继承
5、寄生式继承
6、寄生组合继承
7、用 Object.create实现类式继承