模板文字不能与对象内的箭头函数语法结合使用?

时间:2018-02-12 21:16:31

标签: javascript object arrow-functions

很抱歉,如果这是一个愚蠢的错误,我对JavaScript很新。

所以我在对象person中有一个键 - 函数对(' sayHello'),它使用模板文字($ {})返回插值字符串。当我使用标准函数语法时,它工作正常。

let person = {
  name: 'Ava',
  sayHello () {
    return `Hello, my name is ${this.name}.`;
  }
};

console.log(person.sayHello());
// output: Hello, my name is Ava.

但是,当我使用带有箭头标记的箭头函数语法时,它会返回' name'值未定义。

let person = {
  name: 'Ava',
  sayHello: () => {
    return `Hello, my name is ${this.name}.`;
  }
};

console.log(person.sayHello());
// output: Hello, my name is undefined

有人知道这里的问题是什么,即使这只是我所做的语法错误吗?

感谢。

1 个答案:

答案 0 :(得分:0)

箭头函数表达式最适合非方法函数。他们没有thishttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Description