改变上下文

http://www.nowcoder.com/questionTerminal/dfcc28bf243642b795eaf5a2a621acc5

emmm我用两种方法解出来了,一种比较复杂,另一种相对简单

function alterContext(fn, obj) {
      this.greeting = obj.greeting;
      this.name = obj.name;
      return this.greeting + ', ' + this.name + '!';
}

call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象
call的参数是直接放进去,里面的参数用','隔开

function alterContext(fn, obj) {
    return fn.call(obj);
}

bind的参数除了返回的函数时数组之外,其他参数和call一样

function alterContext(fn, obj) {
    return fn.bind(obj)();
}

apply的所有参数必须放在一个数组中传进去(本题中没有体现)

function alterContext(fn, obj) {
    return fn.apply(obj);
}

我是菜鸡,如有错误,欢迎指正

全部评论
恁是菜鸡的话,俺们这就更菜鸡了
点赞 回复 分享
发布于 2024-11-19 14:14 河南
第一个解法是面向测试用例编程了
点赞 回复 分享
发布于 2023-01-15 22:08 浙江

相关推荐

程序员超好吃:不是,这不是最基本的吗,前端后端测试agent不可能都投啊。别人问你英雄联盟打哪个位置,你说全能,那不就是都不行吗
点赞 评论 收藏
分享
评论
11
收藏
分享

创作者周榜

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