题目描述
将函数 fn 的执行上下文改为 obj,返回 fn 执行后的值
示例1
输入
alterContext(function() {return this.greeting + ', ' + this.name + '!'; }, {name: 'Rebecca', greeting: 'Yo' })输出
Yo, Rebecca!
代码
主要有三种答案。
function alterContext(fn, obj) {
return fn.bind(obj)();//.bind()返回的是一个函数,所以需要立即执行。 }
function alterContext(fn, obj) {
return fn.call(obj);
}
function alterContext(fn, obj) {
return fn.apply(obj);
}