首页 > 代码库 > JS 对象
JS 对象
构造函数个工厂模式创建的对象有什么不同
参考http://www.zhihu.com/question/21220141 方璐的回答
对一个函数之前使用new是将是将该函数当做构造函数来调用,会创建一个该类的实例对象,这个对象的类型是这个函数名,中间使用this.propertyname=value会对该实例对象的属性赋值,并且无论有没有return,都会返回这个对象。
想要创建类,一般用构造函数的方式
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+"."); } }
还有一种常见的是工厂模式
function createPerson(name,age,job){ var o=new Object(); o.name=name; o.age=age; o.job=job; return o; }
工厂模式有什么不好呢?工厂模式创建的对象不能通过instanceof来判断类型
var p1=createPerson(‘name‘,11,‘pair‘); p1 instanceof createPerson //返回false var ps=new Person(‘name‘,22,‘sss‘); ps instanceof Person //返回true
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。