首页 > 代码库 > 函数创建对象(5)寄生构造函数和稳妥构造函数模式

函数创建对象(5)寄生构造函数和稳妥构造函数模式

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操作符对这种对象也没有意义

函数创建对象(5)寄生构造函数和稳妥构造函数模式