H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【前端问题精选】箭头函数定义对象方法时的this取值为何不是对象本身?

function Person() {
    this.name = 'ie'
};
Person.prototype.sayName = () => {
        console.log(this.name);
}

编译结果

var _this = this;
function Person() {
    this.name = 'ie';
}
;
Person.prototype.sayName = function () {
    console.log(_this.name);
};

回答:

没有为什么,规范就是这样规定的 箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

回答:

因为箭头函数本身没有this,它是根据当前的作用域链向上查找this的指向,你的题目当前this的指向是Window对象,所以才会出现最后的编译结果

本文地址:H5W3 » 【前端问题精选】箭头函数定义对象方法时的this取值为何不是对象本身?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址