Шаблонный литерал не работает в сочетании с синтаксисом функции стрелки внутри объекта?
Извините, если это глупая ошибка, я довольно плохо знаком с JavaScript.
Так что у меня есть пара ключ-функция ('sayHello') внутри объекта person
которая возвращает интерполированную строку, используя шаблонный литерал (${}). Он отлично работает, когда я использую стандартный синтаксис функции.
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 ответ
Решение
Выражения со стрелками лучше всего подходят для не-методных функций. У них нет this
, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions