function SpecialArray(){ var values = new Array(); values.push.apply(values,arguments);//求解这行代码是什么意思? //为什么它会有以下所示的三行代码执行后的结果 //values.push(arguments[0]); //values.push(arguments[1]); //values.push(arguments[2]); console.log(values);//["red","blue","green"] values.toPipedString = function(){ return this.join("|"); }; return values; } var colors = new SpecialArray("red","blue","green"); ADS.log.write(colors.toPipedString());
apply的一个巧妙的用处是可以将一个数组默认的转换为一个参数列表,([param1,param2,param3]转换为param1,param2,param3),所以values.push.apply(values,arguments)等价于values.push(arguments[0],arguments[1],arguments[2])