Разница в поведении при назначении переменных, которые имеют общие имена со свойствами оконного объекта в MS Edge - PullRequest
0 голосов
/ 04 ноября 2019

Попытка присвоить значения свойствам оконного объекта в Microsoft Edge не удалась, что отличается от поведения в Firefox и Chrome.

  • В дальнейшем мне нужно будет сохранить каждое свойство окнавозражать против именования переменных? Есть ли какие-либо инструменты, которые могут помочь с этим?
  • Если в будущем выпуске края добавится новое свойство к объекту окна, это нарушит существующий код?
  • Хотя я подтвердил это поведение дляобъект окна, есть ли другие глобальные имена, имеющие такое поведение?

Хотя в случае, если это проблема для меня, я просто смог изменить имя моей переменной, чтобы вернуть код вв рабочем порядке, это не похоже на долгосрочное решение.

// First example
const foo = { control: 123, focus: 456, alert: 789 };
const { control, focus, alert } = foo;

console.log(control, focus, alert);

console.log(focus === window.focus);
console.log(alert === window.alert);

// Second example
const unescape = 'test';
console.log(unescape);

Что касается первого примера:

Первый файл console.log печатает 123, 456, 789 в Firefox и Chrome. Edge печатает элемент управления правильно, но возвращает функции для двух других параметров.

Последние два журнала печатают false в Firefox и Chrome, при печати true в Edge.


Относительно второго примера:

Обратите внимание, что этот простой пример указан вторым, потому что я тестировал его только в консоли браузера, тогда как первый я отметил в активном коде.

ВFirefox и Chrome, значение 'test' хранится в unescape. Он успешно печатается в следующей строке.

При попытке присвоить ребру unescape получается Unspecified Error.

...