在对象文字中使用箭头函数 [duplicate]

Use of arrow functions in object literal [duplicate]

提问人:Shrestha 提问时间:12/19/2022 更新时间:12/19/2022 访问量:43

问:

如何在对象文字中使用箭头函数,以便它能够访问对象中的元素?

// class person {
//     name = "nripesh";
//     surname = "neupane";
//     changeSurname = (newSurname) => {
//         this.surname = newSurname; // surname = newSurname also don't work.
//     }
// }
// const nripesh = new person();

const nripesh = {
  name: 'nripesh',
  surname: 'neupane',

  changeSurname: (newSurname) => {
    console.log(this);
    surname = newSurname;
  },
};

console.log(nripesh.surname);
nripesh.changeSurname('Pariyar');
console.log(nripesh.surname);

我期待得到 第一输出:Neupane 第二输出:帕里亚尔

我得到了什么 第一输出:Neupane 第二输出:Neupane

在 changeSurname 方法中,这指的是全局 this,它是未定义的,仅使用 surname 也是未定义的。当我使用时,这工作

changeSurname: function(newSurname) {
this.surname = newSurname;
}
JavaScript 对象 this arrow-functions

评论

1赞 adiga 12/19/2022
使用如下方法定义{ name: 'nripesh', surname: 'neupane', changeSurname(newSurname) { this.surname = newSurname } }

答: 暂无答案