首页 > 其他 > 详细

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

时间:2016-09-11 14:22:50      阅读:327      评论:0      收藏:0      [点我收藏+]

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)寄生构造函数和稳妥构造函数模式

原文:http://www.cnblogs.com/zhouchuanming/p/5861539.html

(0)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!