箭头函数中的this

箭头函数根据外层(函数或者全局)作用域来决定this

  • 这样this就像其他面向对象的语言,在哪里定义就指向哪里
function foo() {
    return (x) => {
        console.log(this);
    }
}

var obj1 = {
    x: 1
};

var obj2 = {
    x: 2
};

var bar = foo.call(obj1);

bar(); //=> { x: 1 }
bar.call(obj2); //=> { x: 1 } foo()的this绑定到obj1,箭头函数的绑定无法修改

编写程序时要么全部用箭头函数风格的this机制,要么用ES6以前的this风格,尽量不要混用

posted on 2019-11-07 22:30  ddfa  阅读(157)  评论(0编辑  收藏  举报