当在构造函数模式,原型模式,组合使用构造函数模式与原型模式,动态原型模式这几种模式都不适用的情况下可以雍
这种模式基本思想四创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新的对象,从表面上看这个函数又是很典型的构造函数
function Person(name,age,job){
var o = new Object();
o.name = this.name;
o.age = this.age;
o.job = this.job;
o.sayName = function(){alert(this.name)}
return o;
}
var friend = new Person(“csy”,18,“”)
friend.sayName(); // “CSY”
其实,除了使用新的操作符
工厂模式复习:
function createPerson(name,age,job){
var o = new Object();
o.name = this.name
o.age = this.age;
o.job = this.job;
o.sayName = function(){alert(this.name)}
return o;
}
var person1 = createPerson(“csy”,18,“CEO”)//与寄生构造函数模式不同之处
假设我们想创建一个具有额外方法的特殊数组,由于不能直接修改Array构造函数,因此可以这样:
function SpecialArray(){
//创建数组
var values = new Array();
//添加值
values.push.apply(values,arguments);
//添加方法
values.toPipedString = function(){
return this.join("|");
}
//返回数组
return values;
}