this不懂的地方的明白

原文全文传送门

我写这篇文章重要进修我不知道的自力挪用时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

    原文作者:luckyzv
    原文地址: https://segmentfault.com/a/1190000008365429
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞