首页 新闻 会员 周边 捐助

对apply方法的使用迷惑

0
悬赏园豆:100 [已解决问题] 解决于 2016-07-30 11:41
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());

 

波克维的主页 波克维 | 初学一级 | 园豆:104
提问于:2016-07-30 11:15
< >
分享
最佳答案
2

apply的一个巧妙的用处是可以将一个数组默认的转换为一个参数列表,([param1,param2,param3]转换为param1,param2,param3),所以values.push.apply(values,arguments)等价于values.push(arguments[0],arguments[1],arguments[2])

波克维 | 初学一级 |园豆:104 | 2016-07-30 11:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册