码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-09-11 14:24:14      阅读:116      评论: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)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!