码迷,mamicode.com
首页 > Web开发 > 详细

JS 对象

时间:2014-06-06 19:59:36      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

构造函数个工厂模式创建的对象有什么不同

参考http://www.zhihu.com/question/21220141 方璐的回答

对一个函数之前使用new是将是将该函数当做构造函数来调用,会创建一个该类的实例对象,这个对象的类型是这个函数名,中间使用this.propertyname=value会对该实例对象的属性赋值,并且无论有没有return,都会返回这个对象。

想要创建类,一般用构造函数的方式

bubuko.com,布布扣
function Person(name,age,job){
  this.name=name;
  this.age=age;
  this.job=job;
  this.introduce=function(){
    alert("My name is "+this.name+", I am"+age+"year(s) old, I am a "+job+".");
  }
}
bubuko.com,布布扣

还有一种常见的是工厂模式

bubuko.com,布布扣
function createPerson(name,age,job){
  var o=new Object();
  o.name=name;
  o.age=age;
  o.job=job;
  return o;
}
bubuko.com,布布扣

工厂模式有什么不好呢?工厂模式创建的对象不能通过instanceof来判断类型

var p1=createPerson(‘name‘,11,‘pair‘);
p1 instanceof createPerson    //返回false

var ps=new Person(‘name‘,22,‘sss‘);
ps instanceof Person   //返回true

 

 

JS 对象,布布扣,bubuko.com

JS 对象

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/cart55free99/p/3765961.html

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