1.修改this指向
·题目
封装函数 f,使 f 的 this 指向指定的对象
·方法
// 方法一:bind()
function bindThis(f, oTarget) {
return f.bind(oTarget);
};
// 方法二:apply()
function bindThis(f, oTarget){
return function(){
return f.apply(oTarget, arguments);
};
};
// 方法三:call()
function bindThis(f, oTarget) {
return function(x,y){
return f.call(oTarget,x,y);
};
};
·知识点
1.函数内部的this指向
this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this指的是,调用函数的那个对象。
调用方式 | this指向 |
---|---|
普通函数调用 | window |
定时器函数 | window |
立即执行函数 | window |
构造函数调用 | 实例对象 |
对象的方法调用 | 该方法所属对象 |
事件绑定方法 | 绑定事件对象 |
①普通函数调用
function fun(){
var user = "测试";
console.log(this.user); //undefined
console.log('普通函数的this' + this); //window
}
fun();
=== window.fun()