下载此文档

JS如何创建对象到继承对象.doc


文档分类: | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍

每种pattern都有自己的特色。
1 工厂模式中,在构造函数内部用 o={}创建一个新对象,最后返回这个对象。当实例化时,不需要用new关键字,就像调用一般的方法一样。
我们可以把create函数设想成一个贴牌工厂,面对不同的需求,制作出内在相同,标签不同的产品。
工厂模式最大的问题是容易和普通函数混淆,方便归方便,但我们只能通过命名来确认它是一个构造函数。
/* pattern*/
function createPerson(name,age,job){
var o = {}; //new object
=name;
=age;
=job;
=["ansel","suisa"];
=function(){
alert("factory pattern:"+);
};
return o;
}
var tanya= createPerson("tanya","28","Software Engineer");
();

/*tips:
o={} inside the create function
no "this" in the create function
*/
2 构造函数模式中,用new关键字来实例化对象,在构造函数内部使用this,无需返回任何对象。
构造函数相比工厂函数更加OO啦,并且可以将它的实例标识作为一种特定的类型。像String,Array一样的使用自定义的类型。
但是,它的问题是不断的拷贝拷贝,每new一次就造出一份副本,每个方法都要在每个实例上重新创建一遍,不同实例的同名函数是不相等的(工厂模式也有此问题),
都说未来世界是个资源共享,专业细分的社会,JS OO的世界中当然应该体现这种共享性,于是Eric发明了原型链。
/* pattern */
function Person(name,age,job){
=name;
=age;
=job;
=function(){
alert("constructor pattern:"+);
};
}
var ansel = new Person("ansel","28","Software Engineer");
();

/*tips:
new in entities
this in constructor
*/
3 原型模式中,最特色的当然是prototype。但是原型仅在需要share的时候好用,可是人不能是完全透明的,也需要一点点隐私。所以最为常用的模式一定是混合型的。
/* pattern*/
function Tanya(){
}

="tanya";
="28";

JS如何创建对象到继承对象 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小92 KB
  • 时间2018-03-17