我写这篇文章重要进修我不知道的自力挪用时this的指向
this的指向,是在函数被挪用的时刻肯定的,也就是实行高低文被建立时肯定的。
(1)简朴的指向全局
(2)函数中的this指向
在一个函数高低文中,this由挪用者供应,由挪用函数的体式格局来决议。假如函数自力挪用,那末该函数内部的this,则指向undefined。但是在非严厉形式中,当this指向undefined时,它会被自动指向全局对象。
var a = 20;
var obj = {
a: 10,
c: this.a + 20,
fn: function () {
return this.a;
}
}
console.log(obj.c); //自力挪用 非严厉形式指向全局 40
console.log(obj.fn()); //对象挪用 指向对象 10
当obj在全局声明时,不管obj.c在什么地方挪用,这里的this都指向全局对象,而当obj在函数环境中声明时,这个this指向undefined,在非严厉形式下,会自动转向全局对象。
var a = 20;
var foo = {
a: 10,
getA: function () {
return this.a;
}
}
console.log(foo.getA()); //非自力挪用 10
var test = foo.getA;
console.log(test()); //自力挪用 20
(3)用call或许apply显式变动this
(4)组织函数new对象this