修改this指向
题目:封装函数 f,使 f 的 this 指向指定的对象
解答:
修改this指向有3种方法,分别为:
- apply(要变成的指向,数组参数)方法,
function bindThis(f, oTarget) {
return function(){
return f.apply(oTarget,arguments);
}
}
- call(要变成的指向,参数1,参数2,…)方法
function bindThis(f, oTarget) {
return function(){
return f.call(oTarget,...arguments);
}
}
3.bind(要变成的指向,数组参数或直接参数)方法,此方法返回一个新的函数
function bindThis(f, oTarget) {
//创建一个和f功能完全一样的函数,并永久替换this为oTarget
return f.bind(oTarget);
}
知识点:bind()、apply()、call()方法