发表于: 2017-02-07 00:57:09
3 1333
今天完成的事情:
1.继续任务八。
2.js高程的继续学习。
遇到的问题:
1.在分页的问题上已经卡了些时间了。并没有很好的实现方案。
收获:
1.组合使用构造函数模式和原型模式创建对象。
构造函数模式用于定义实例属性。(都有的的属性但是属性的取值不一样。);原型模式用于定义方法和共享属性。
这样做的原因:结合两者的优势,解决两者单独用于创建对象的缺点。
各自缺点:
构造函数模式:无法方便的创建函数方法。若是通过使用this(this.func=func),再次在全局环境定义函数,可解决该问题,但是只能被某个对象调用,并且有时需要在全局环境定义多个方法。
原型模式:1.无法传参。2.用函数方法修改引用类型的对象属性时候会使得protoype上的对应属性改变。
2.关于原型链
基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法。实现的本质是重写原型对象。
基本实现:ex:b.prototype=new a();说明:b对象继承a 的属性和方法。而且是作为prototype来继承的(如上:这样继承同样在用函数方法操作引用类型的属性时候会存在问题。如何解决该问题?)
解决办法:借用构造函数:组合继承(最常用的继承模式)
实现方法:
在构造函数中使用call()或者apply()方法继承属性:这样做还支持参数传递。实例对象既拥有共同的方法又拥有共同属性的不同取值。
评论