看了这篇我也懂了this

// this指向
// 1.指向全局变量window
var a = 1;

function func() {
    var a = 2;
    console.log(this.a);
}
func(); //2
// 2.指向调用它的对象(funx()中的this只对直属上司(直接调用者obj)负责,不管有多少个。)
var b = 3;

function funx() {
    console.log(this.b);
}
var obj = {
    b: 4,
    funx
}
obj.funx(); //4

var aa = 15

function test() {
    console.log(this.aa)
}
var obj = {
    aa: 2,
    test
}
var obj0 = {
    aa: 3,
    obj
}
obj0.obj.test()
// 3.可以将其传给一个变量,并且一样调用它
var d = 1

function test() {
    console.log(this.d)
}
var obj = {
    d: 2,
    test
}
var testCopy = obj.test
testCopy();
// 4.call(),命令指向谁
var e = 7;

function test1() {
    console.log(this.e)
}
var obj = {
    e: 8,
    test1
}
var testCopy = obj.test1
testCopy.call(obj);
// 5.指向构造函数实例化对象
var e = 9;

function Fu(e) {
    this.e = e
}
var rr = new Fu(10);
console.log(rr.e);
// 6.箭头函数中的this在函数定义的时候就已经确定,它this指向的是它的外层作用域this的指向。
var u = 11;
var test = () => {
    console.log(this.u);
}
var obj = {
    u: 18,
    test
}
obj.test();


作者:Vam的金豆之路

主要领域:前端开发

我的微信:maomin9761

微信公众号:前端历劫之路