练习牛客网笔试题--前端js--32-函数的上下文
// 题目描述
// 将函数 fn 的执行上下文改为 obj 对象
// 输入
// function () {
// return this.greeting + ', ' + this.name + '!!!';
// }, {greeting: 'Hello', name: 'Rebecca'}
// 输出 Hello, Rebecca!!!
1.自己的练习
function speak(fn, obj) {
return (fn.bind(obj))();
}
2.题解
// 方法一:直接将fn挂载到obj对象上
function speak(fn, obj) {
obj.fn = fn
return obj.fn()
}
// 方法二:使用apply
function speak(fn, obj) {
return fn.apply(obj)
}
// 方法三:使用call
function speak(fn, obj) {
return fn.call(obj)
}
// 方法四:使用bind
function speak(fn, obj) {
return fn.bind(obj)()
}