Что такое getKey в этом коде?
function getKey(k) {
return `a key named ${k}`;
}
const obj = {
id: 5,
name: 'San Francisco',
[getKey('enabled')]: true,
};
в консоли набираю
obj.id - получаю 5
obj.name - 'San Francisco'
obj.getKey('enabled') -
Uncaught TypeError: obj.getKey is not a function
<anonymous> debugger eval code:1
Что это такое и как это использовать?
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
В ES2015 появилась возможность Вычисляемых имён свойств. Это позволяет добавлять в скобки [] выражение, которое будет вычислено, как имя свойства
var i = 0;
var a = {
['foo' + ++i]: i,
['foo' + ++i]: i,
['foo' + ++i]: i
};
console.log(a.foo1); // 1
console.log(a.foo2); // 2
console.log(a.foo3); // 3
Как следствие у вас имя свойства будет: "a key named enabled". Обратиться к нему можно также через скобочную нотацию:
obj['a key named enabled']
function getKey(k) {
return `a key named ${k}`;
}
const obj = {
id: 5,
name: 'San Francisco',
[getKey('enabled')]: true,
};
console.log(obj['a key named enabled']);
console.log(obj[getKey('enabled')]);