arguments对象如何转成数组

先知:arguments是函数内部的类数组对象!
思路:将arguments作为this绑定到指定函数原型的某个函数上

Function.prototype.imislice=function(start,end){
    var args=this
    var newArgs=[]
    start=start||0
    end=end||args.length
    for(var i=start;i<end;i++)
    {
         newArgs.push(args[i])
    }
    return newArgs
}
function test(n1,n2){
    var res=test.imislice.call(arguments)
    console.log(res);
}
test(1,2,3,4,5)

test
简化版如下:

function test(n1,n2){
    var arrs =Array.prototype.slice.call(arguments)
    console.log(arrs)
}

继续简化!

var arr=[].slice.call(arguments)

继续简化

var arr=Array.from(arguments)

再简化!

var arr=[...arguments]
全部评论

相关推荐

我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
码农索隆:有点耳熟,你们是我教过最差的一届
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
星辰再现:裁员给校招生腾地方
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务