Array.prototype[@@unscopables]

Свойства символа @@unscopable содержат свойства имён, которые не были включены в ECMAScript до версии ES2015. Эти свойства исключены из привязок оператора with.

Синтаксис

arr[Symbol.unscopables]

Описание

Стандартные свойства массива, которые исключены из привязок  with: copyWithin, entries, fill, find, findIndex, includes, keys, и values.

См. Symbol.unscopables о том, как установить unscopables для Ваших собственных объектов.

Атрибуты свойстваArray.prototype[@@unscopables]
Записываемое нет
Перечисляемое нет
Настраиваемое да

Примеры

Приведённый код отлично работает в ES5 и ниже. Однако в ECMAScript 2015 и более поздних версиях был введён метод  Array.prototype.keys(). Это означает, что внутри окружения with, "ключи" будут методом, а не пременной. Вот где теперь встроенные свойства символа Array.prototype[@@unscopables] вступают в игру и препятствуют тому, чтобы некоторые из методов Array были включены в оператор with.

var keys = [];

with (Array.prototype) {
  keys.push('что-то');
}

Object.keys(Array.prototype[Symbol.unscopables]); 
// ["copyWithin", "entries", "fill", "find", "findIndex", 
//  "includes", "keys", "values"]

Спецификации

Спецификация Статус Комментарий
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Array.prototype[@@unscopables]' в этой спецификации.
Стандарт Изначальное определение.
ECMAScript Latest Draft (ECMA-262)
Определение 'Array.prototype[@@unscopables]' в этой спецификации.
Черновик  

Совместимость с браузерами

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
@@unscopablesChrome Полная поддержка 38Edge Полная поддержка 12Firefox Полная поддержка 48IE Нет поддержки НетOpera Полная поддержка 25Safari Полная поддержка 10WebView Android Полная поддержка 38Chrome Android Полная поддержка 38Firefox Android Полная поддержка 48Opera Android Полная поддержка 25Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 3.0nodejs Полная поддержка 0.12

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки

Смотрите также