动态原型模式 ! 它区别于组合使用构造函数和原型模式。 将所有的信息都封装在了构造函数中,这样看起来更具有封装性,可能让更多别的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();