函数创建对象动态原型模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数创建对象动态原型模式相关的知识,希望对你有一定的参考价值。

把所有信息封装在构造函数内,通过在构造函数中初始化原型,保持了同时使用构造函数和原型的优点,通过检查某个应该存放的方法是否有效,来决定是否需要初始化原型。(通过if判断)

function Person(name,age,job){
     this.name=name;
     this.age-age;
     this.job=job;
    //判断方法是否存在
    if(typeof this.sayName!="function"){
           Person.prototype.sayName=function(){
                    alert(this.name);
      };
  }
}
var friend=new Person("Nicholas",30,"Engineer");
friend.sayName();

注意:使用动态原型模式时,不能使用对象字面量重写原型,会切断实例与新原型之间的联系;使用这种模式可以使用isstanceof操作符确定创建对象的类型。

 

以上是关于函数创建对象动态原型模式的主要内容,如果未能解决你的问题,请参考以下文章

JSJavaScript创建对象 - 工厂模式 - 构造函数模式 - 原型模式 - 原型链 - 组合模式

创建对象之动态原型模式

JS面向对象基础讲解(工厂模式构造函数模式原型模式混合模式动态原型模式)

js17---创建对象:构造函数式和原型组合模式动态原型模式稳妥构造函数式

关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)

面向对象的程序设计 - 创建对象