题解 | #使用 apply 调用函数#

使用 apply 调用函数

http://www.nowcoder.com/practice/d47b482e7148497582c7a995df51f393

超简单
不使用 apply 调用函数

function callIt(fn) {

    let arr = [];
    for(let i=0;i<arguments.length;i++){
        arr.push(arguments[i]); 
    }
    //apply是会自动把传入的数组里的参数提取出来的 普通函数调用必须要拆开
    return fn(...arr.slice(1));
    //函数里调用函数,this指针指向都是一样的 指向window,没有必要使用apply


}

ES6 还可以利用扩展运算符...更简单
虽然arguments它不是数组 是1个对象 但只要内部是iterable的 就可以用...拆开

function callIt(fn) {

    let arr = [...arguments];
    //apply是会自动把传入的数组里的参数提取出来的 普通函数调用必须要拆开
    return fn(...arr.slice(1));
    //函数里调用函数,this指针指向都是一样的 指向window,没有必要使用apply


}

连中间变量都不要了 一句代码搞定起飞

function callIt(fn) {
    return fn(...[...arguments].slice(1));
}
全部评论
function callIt(fn) { let arr = [...arguments]; let param=arr.sclie(1) //apply是会自动把传入的数组里的参数提取出来的 普通函数调用必须要拆开 return fn(...param); //函数里调用函数,this指针指向都是一样的 指向window,没有必要使用apply } 为什么这样测试样例就不通过呢
点赞 回复 分享
发布于 2024-01-18 10:15 山东

相关推荐

工科女的日常:真诚建议:别再用这种花哨的模板,可以看看我发的那个零经验找实习发帖子
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务