Ваша проблема в том, как вы назначаете функцию 'value' своей клавише ballonText
. При использовании es6, который позволяет вам сокращать имена ключей / значений, вы можете назначить функцию следующим образом:
const es6Assign = {
id: 'Rate',
myFunc(str) {
return str.toUpperCase();
}
}
// prints out HELLO
console.log('calling es6Assign func: ', es6Assign.myFunc('hello'));
Если вы хотите сделать это ванильным способом, вам следует назвать функцию, даже если это значение клавиши:
const explicitAssign = {
id: 'Rate',
myFunc: function myFunc(str) {
return str.toLowerCase();
}
}
// prints out hello
console.log('calling explicitAssign func: ', explicitAssign.myFunc('HELLO'));
Что касается , почему? ; Я предполагаю, что, хотя для you ключ является «именем» функции, для кода функции, у которой нет имени, не существует, то есть function() { ... }
вернет undefined
. Я добавил случай в пример Fiddle , чтобы вы могли видеть, что происходит.