在前面几章文章的介绍里面,使用的都是构造函数和原型属性分开的写法,这样就显示不了oo中封装的特性了,所以这章谈谈动态模式设计
var Person=function(name,age,sex){ this.name=name; this.age=age; this.sex=sex; //方法一般写到最后 if(typeof this.sayInfo !='function'){ Person.prototype.sayInfo=function(){ console.info(this.name + "--" + this.age + "--" + this.sex) } } } var person1=new Person('z3',19,'boy'); var person2=new Person('l4',20,'girl'); person1.sayInfo();//z3--19--boy console.log(person1.sayInfo == person2.sayInfo);//true这样做的好处是如果这个函数在原型对象上存在,则就不用创建,而且也实现了封装的特性