Что такое global.lacksGlobal?

326
06 июля 2017, 04:33

В таблице поддержки новых js-фич обнаружил такой тест:

"global" global property is global object

var actualGlobal = Function('return this')();
actualGlobal.__system_global_test__ = 42;
return typeof global === 'object' && global && global === actualGlobal && !global.lacksGlobal && global.__system_global_test__ === 42;

Что здесь происходит:

  1. Получаем глобальный объект как this в вызове функции вне строгого режима
  2. Создаём в нём глобальное свойство __system_global_test__
  3. Проверяем, что у нас вообще есть global
  4. И он не ложный
  5. И он совпадает с настоящим глобальным скоупом
  6. и !global.lacksGlobal
  7. и он содержит то свойство, которое мы создали с правильным значением

Вопрос: что делает проверка !global.lacksGlobal?

Ещё интересно, есть ли возможность, что global есть, но ложный (видимо, null три такой проверке) - вроде тоже странная ситуация, но не лишена смысла.

Answer 1

Данная проверка добавлена на случай того, чтобы не спутать настоящий global, с полифилом, который добавляется непосредственно на страницу проверки

if (typeof global === "undefined") {
  this.lacksGlobal = true;
  window.global = this;
}
READ ALSO
Что делает вопросительный знак в JavaScript?

Что делает вопросительный знак в JavaScript?

Что делает вопросительный знак в JavaScript? И почему его называют "тернарным оператором"?

363
Как сделать Input disabled? React + Bootstrap

Как сделать Input disabled? React + Bootstrap

На форме есть два инпутаКак в реакте сделать так, чтобы начиная вводить в одном Input-e, второй стал disabled Использую react-bootstrap и компонент FormControl...

309
Выделить найденную подстроку [дубликат]

Выделить найденную подстроку [дубликат]

На данный вопрос уже ответили:

249