首页 > 试题广场 >

改变上下文

[编程题]改变上下文
  • 热度指数:28840 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
将函数 fn 的执行上下文改为 obj,返回 fn 执行后的值
示例1

输入

alterContext(function() {return this.greeting + ', ' + this.name + '!'; }, {name: 'Rebecca', greeting: 'Yo' })

输出

Yo, Rebecca!
头像 plumli
发表于 2021-03-26 15:48:15
emmm我用两种方法解出来了,一种比较复杂,另一种相对简单 function alterContext(fn, obj) { this.greeting = obj.greeting; this.name = obj.name; return this.greet 展开全文
头像 轻风123
发表于 2021-08-06 15:22:45
function alterContext(fn, obj) { return fn.bind(obj)();//.bind()返回的是一个函数,所以需要立即执行。 } function alterContext(fn, obj) { return fn.call(obj); } fun 展开全文
头像 牛客722503979号
发表于 2022-04-11 13:03:56
【改变this指向问题】 function alterContext(fn,obj){ return fn.call(obj,obj.name,obj.greeting); }
头像 胆小的牛肉丸人狠话不多
发表于 2023-01-09 12:06:16
function alterContext(fn, obj) { obj.fn=fn; return obj.fn(); }
头像 雾里看花花里看雾
发表于 2023-06-26 14:08:12
思路:call、apply、bind。 function alterContext(fn, obj) { return fn.call(obj) } function alterContext(fn, obj) { return fn.apply(obj) } functio 展开全文

问题信息

难度:
51条回答 11084浏览

热门推荐

通过挑战的用户

查看代码