Имя свойства объекта искажено в запутанном js и не может его получить

#javascript

#javascript

Вопрос:

Я делаю

 return {
  messageId: payload['messageId'],
  data: payload['data'],
  result: payload['result']
};
  

и позже попытайтесь восстановить его с помощью obj[‘MessageId’].
Это работает в деобфусцированном js, но в запутанном js имя ключа MessageId преобразуется в ‘Fe’, в то время как два других остаются неизменными. Мой код терпит неудачу при попытке найти obj [‘MessageId’].

Это неправильный способ кодирования, и я должен делать

 return {
  'messageId': payload['messageId'],
   . . . 
  

?

Комментарии:

1. Какой инструмент это делает? Существует множество инструментов для запутывания / сжатия кода.

2. Когда вы в конечном итоге получите доступ к свойству, вы должны использовать ob.messageId , а не obj['messageId'] . Минификаторы обычно игнорируют доступ к свойству через строковые литералы. Пожалуйста, опубликуйте код, в котором вы обращаетесь к объекту, а также какой минификатор вы используете.

3. Я всего этого не знаю. Все это скрыто внутри проприетарных инструментов в моей работе. Так всегда ли безопасно получать доступ, используя точечную нотацию? Однако точечная нотация не работает на нетипизированных объектах, только на объектах с заданным типом.

4. Вы хотите сказать, что минификатор, который вы используете, является каким-то внутренним инструментом?

5. Нет, я не могу его найти, оно скрыто внутри наших инструментов сборки, принадлежащих другой команде. Это с помощью компилятора закрытия Google. Просто скажите мне способ закодировать так, чтобы это работало. Вернет { ‘MessageId’: полезная нагрузка[‘MessageId’], не предотвратит проблему? Я не могу проверить, потому что на локальной рабочей станции js всегда деобфускирован.