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

函数创建对象的几种模式(1)(仅为个人整理,如有差错望指正)

时间:2016-09-09 18:46:58      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

1.工厂模式:

function creatPerson(name,age,job){
            var o=new Objact();
            o.name=name;
            o.age=age;
            o.job=job;
           o.sayName=function(){
              aert(this.name);
        }
          return o;
}
var person1=createPerson("lee",29,"Engineer");
var person2=createPerson("jake",30,"Doctor");          

缺点:无法解决对象识别问题。

2.函数构造模式:

function Person(name,age,job){
               this.name=name;
               this.age=age;
               this.job=job; 
         this.sayName=function(){
              alert(this.name);            
  };
}
   var person1=new Person("lee",29,"Engineer");
   var person2=new Person("jack",30,"Doctor");

注意:  函数名首字母大写;必须用new操作符创建对象;构造模式中没有明显的创建对象,直接将属性和方法赋值给了this对象;没有return语句;可通过instanceof操作符区分对象实例;

          创建Person的新实例,必须使用new操作符,用直这种方式调用构造函数会经历一下4步:

                    1.创建一个新对象;

                    2.将构造函数的作用域赋给新对象(this指向 新对象);

                    3.执行构造函数中的代码;

                    4.返回新对象;

缺点:以上代码每个方法都要在每个实例上重新创建一遍

 

函数创建对象的几种模式(1)(仅为个人整理,如有差错望指正)

标签:

原文地址:http://www.cnblogs.com/zhouchuanming/p/5857461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!