寄生构造函数模式:其基本思想是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新创建的对象。假设我们想创建一个具有额外方法的特殊数组,由于不能直接修改Array构造函数,可以使用此模式
function SpecialArray(){
//创建数组
var values = new Array();
//添加值
values.push.apply(values,arguments);
//添加方法
values.toPipedString = function(){
return this.join("|");//以 “|”分割
};
//返回数组
return values;
}
//测试
var colors = new SpecialArray("red","blue","green");
alert(colors.toPipedString());//red|blue|green
在这个例子中,首先创建一个名叫SpecialArray的构造函数,在函数内部,创建一个数组,然后用push()方法初始化数组的值,然后又自定义了一个toPipedString()方法,该方法返回以竖线分割的数组值,最后,将数组以函数值的形式返回。
注意:返回的对象与构造函数或者构造函数的原型属性直接没有关系。