JavaScript 寄生构造函数和动态原型模式

动态原型模式 ! 它区别于组合使用构造函数和原型模式。  将所有的信息都封装在了构造函数中,这样看起来更具有封装性,可能让更多别的OO语言开发者理解。

既然是都封装在构造函数中,如代码

 function Person(name,age,job){
              //实例属性
                   this.name=name;
                   this.age=age;
                   this.job=job;
                   //判断是否存在这个方法,不存在则自动添加到原型中,只被初始化一次,只会在初次调用构造器时,才会执行。
                  if(typeof this.sayName!="function"){
                   alert("ok");//测试  是否创建多个对象实例时,原型只被初始化一次
                    Person.prototype.sayName=function(){
                       alert(this.name);
                    }
                  }
              
              }

             var person1 = new Person("Nicholas", 29, "Software Engineer");
             var person2 = new Person("Greg", 27, "Doctor");
             person1.sayName();
             person2.sayName();

 

posted @ 2016-07-01 16:06  德玛西亚宝宝  阅读(180)  评论(0)    收藏  举报