封装:
1、通过构造函数添加属性和方法(即:通过this定义属性和方法)
缺点:通过this定义的属性和方法,我们实例化对象的时候斗湖重新复制一份,造成了内存的浪费。
2、通过原型prototype封装
注意:对于那些不变的属性和方法,我们可以直接将其添加在类的prototype对象上。
缺点:实例化的对象的原型都是指向同一内存地址,改动其中一个对象的属性可能会影响到其他的对象
继承:
1、类似继承
其中最核心的是
SubClass.prototype = new SuperClass();
2、构造函数继承
//声明子类 var SubClass = function(id){ SuperClass.call(this, id) }
3、组合式继承(上述两继承方式的结合)
缺点:组合式继承方法固然好,但是会导致一个问题,父类的构造函数会被创建两次(call()的时候一遍,new的时候又一遍)
4、寄生组合继承
网友评论