定义: this的指向在函数定义的时候是无法确定的,只有在函数执行的时候才能确定this 到底指向谁,实际上this的最终指向的是那个调用它的对象. 但是这样的理解在某些情况下是不对的
this永远指向的是最后调用它的对象,也就是最后的调用者才是this指向的对象
this 的传递:
function func() {
console.log(this);
}
var v = {};
func();
var o = {
func:function (){
console.log(this);
}
}
o.func();
function func(a){
console.log(this);
console.log(a);
}
var aa ={1:"x"};
func.call(aa,'xxx');
- 强制绑定
-
- 将外部的对象强制的绑定到目标的this 对象上产生一个新的函数对象返回
function func(a){
console.log(this);
console.log(a);
}
var aa ={1:"x"};
func.call(aa,'xxx')
var bb = {xx:"xcccc"};
var ba= func.bind(bb);
ba('mmm');
{ '1': 'x' }
xxx
{ xx: 'xcccc' }
mmm