求助,在对象里面定义方法无法使用arguments获取准备的参数

function mySort() {
    var tags = new Array();//使用数组作为参数存储容器
    console.log(arguments.length);
    for(var i=0; i<arguments.length; i++) {
        console.log(arguments[i])
    }
    tags = tags.sort();
    return tags;
}

var result = mySort(50, 11, 16, 32, 24, 99, 57, 100); //传入参数个数不确定
console.info(result); //显示结果

我这么获取参数没问题

let Helper = {
    mySort: ()=>{
        var tags = new Array();//使用数组作为参数存储容器
        // console.log(arguments instanceof Function);
        // console.log(arguments.length);
        for(var i=0; i<arguments.length; i++) {
            console.log(arguments[i])
        }
        // arguments.map((item, index) => {
        //     tags.push(item);
        // })
        tags = tags.sort();
        return tags; //返回已经排序的数组
    }
}

但是这么获取arguments就无法获取正确的参数,请问什么原因

阅读 1.3k
1 个回答

箭头函数和普通函数的this指向不同,arguments在箭头函数里获取的是外层函数的参数

箭头可使用下面方式获取多个参数

(...args) =>{
   //args为数组
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题