1.寄生构造函数模式
function Person(name,age,job){ var o=new Object(); o.mane=mane; o .age=age; o.job=job; o.sayName=function(){ alert(this.name); }; return o; } var friend=new Person("Nicoholas",29,"Engineer"); friend,sayName();//"Nicholas";
某些特殊情况下使用,例如:
function SpecialArray(){ var values=new Array();//创建数组 var .push.apply(values,arguments);//添加值 values.toPipedString=function(){ //添加方法 return this.join("|"); }; return values;//返回数组 } var colors=new SpecialArray("red","blue","green"); alert(color.toPipedString());//"red|blue|green"
注意:返回的对象跟构造函数或者构造函数的原型属性没有关系;不能使用instanceof操作符来确定对象类型。
2.稳妥构造函数模式
稳妥对象没有公共属性,不能使用this,防止数据被其他应用程序改动时使用
function Person(name,age,job){ var o=new Object;//创建要返回的对象 // 可以在这里定义私有变量和函数 o.sayName=function(){//添加方法 alert(name); }; return o;//返回对象 } var friend=Person("Nicholas",29,"Engineer"); friend.sayName();//"Nicholas"
注意:这种模式创建的对象与构造函数之间也没有什么关系,instanceof操作符对这种对象也没有意义
时间: 2024-11-06 07:30:35