首页 > 代码库 > 函数创建对象的几种模式(1)(仅为个人整理,如有差错望指正)
函数创建对象的几种模式(1)(仅为个人整理,如有差错望指正)
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)(仅为个人整理,如有差错望指正)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。