JS - 基础 - this的指向(function 、 箭头函数)

箭头函数this

箭头函数的this是继承父执行上下文里面的this

例子:

var x = 11;
var obb = {
    x: 222,
    y: {
        x:333,
        obc: function f() {
            console.log(this)
            var x = 111;
            var obj = {
                x: 22,
                say: () => {
                    console.log(this.x);
                }
            }
            obj.say()
        }
    }
}
obb.y.obc()

输出结果是333,
原因箭头函数没有this,剪头函数的this是继承父执行上下文里面的this ,这里箭头函数的执行上下文是函数f(),所以它就继承了f()的this,

function this

function中的this是函数的调用对象

参考: https://blog.csdn.net/cjgeng88/article/details/79846670

※ 例子(一例顶千言)

var a = {
  foo: () => {
        console.log(this) ;
    } , 
    boo: function()  {
        console.log(this) ;
    } ,
    coo: function() {
        return () => {
            console.log(this);
        }
    }
} ;
var b = a.boo ; 
a.foo() ;
a.boo() ;
b();
a.coo()() ;

JS - 基础 - this的指向(function 、 箭头函数)_第1张图片


参考:

  • function中的this - https://blog.csdn.net/cjgeng88/article/details/79846670

  • 箭头函数中的this - https://blog.csdn.net/weixin_42519137/article/details/88053339

你可能感兴趣的:(#,ECMAscript,6)