下面是一个寄生函数的例子,但我一直无法理解它在给values数组添加元素时为什么要用apply来将this指向values,原本不就是指向它的吗?
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");
//"red|blue|green"
alert(colors.toPipedString());
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…