#javascript
#javascript
Вопрос:
function transpose(data) {
return data.replace(/[abc]/ig, function(d) {
return {
'a': '1',
'b': '2'
}[d];
});
}
У меня возникли небольшие проблемы с пониманием возвращаемой части этой функции.
Если я правильно это понимаю, return возвращает литерал объекта. (Пожалуйста, поправьте меня, если я ошибаюсь.)
Вызывается параметр [d] для доступа к свойству литерала объекта? (Это правильно?)
Например:
var x = {'a': '1', 'b': '2'}
return x['a']
Комментарии:
1. да, ваше понимание верно
2. и да, никто не должен писать подобные функции из-за того, насколько неоднозначно это выглядит
Ответ №1:
Да, просто посмотрите на основы доступа к свойству объекта. У вас есть 2 способа (не включая деструкцию объекта ES6):
- object.property
- object[‘свойство’]
Итак, в этом случае он использует метод доступа к свойству в квадратных скобках [] .
Функция возвращает объект и обращается к свойству, переданному в качестве общего параметра.