javascript设计模式2原型模式

js多态和封装

  《重构:改善即有代码的设计》里这样描述多态,多态的最根本好处在于,你不必再向对象询问你是什么类型而后根据得到的答案调用对象的某个行为-你只管调用该行为就是了,其他的一切多态机制都会为你安排妥当。

  换句话说:多态最根本的作用就是通过把过程化的条件分支语句转化为对象的多态性,从而消除条件分支语句。

  js是动态类型语言,天生的支持了多态。

  封装变化:可复用面向对象软件的基础就是要我们去封装变化,当我们把程序中变化的部分封装好之后,剩下的即是稳定而可服用的部分了。

原型模式和基于原型继承的js对象系统

  原型模式不单是一种设计模式,也被称为一种编程泛型。

  在原型编程泛型中,没有类的概念,创建对象的手段是克隆。

  所有数据都是对象,要得到一个对象,不是实例化类,而是找到一个对象最为原型并克隆他,对象会记住它的原型,如果对象无法响应某个请求,它会把这个请求委托给它自己的原型。  

  对于js来讲,其实并不能说对象有原型,而只能说对象的构造器有原型,当我们说对象把请求委托给它的原型时,其实指的是把请求委托给它的构造器的原型。js通过给对象提供一个_proto_隐藏属性来保存它的构造器的原型,再通过将请求委托给它构造器的原型,从而实现基于原型的继承系统。

posted @ 2016-02-15 21:41  倾其一生  阅读(107)  评论(0)    收藏  举报