A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Symbol/unscopables below:

Symbol.unscopables - JavaScript | MDN

Symbol.unscopables

El símbolo conocido como Symbol.unscopables se utiliza para especificar un valor de objeto cuyos nombres de propiedades propias y heredadas se excluyen de los enlaces de entorno with del objeto asociado.

Pruébalo
const object1 = {
  property1: 42,
};

object1[Symbol.unscopables] = {
  property1: true,
};

with (object1) {
  console.log(property1);
  // Expected output: Error: property1 is not defined
}
Descripción

El símbolo @@unscopables (Symbol.unscopables) puede definirse en cualquier objeto para excluir los nombres de propiedades de ser expuestos como variables léxicas en los enlaces de entorno with. Tenga en cuenta que si utiliza Modo estricto, las declaraciones with no están disponibles y probablemente tampoco necesiten este símbolo.

Establecer una propiedad a true en un objeto unscopable la hará unscopable y por tanto no aparecerá en las variables de ámbito léxico. Establecer una propiedad a false la hará scopable y por lo tanto aparecerá en las variables de ámbito léxico.

Sobrescribir No Numerable No Configurable No Ejemplos Scoping con sentencias

El siguiente código funciona bien en ES5 y posteriores. Sin embargo, en ECMAScript 2015 y posteriores, se introdujo el método Array.prototype.keys(). Eso significa que dentro del entorno with "keys" sería ahora el método y no la variable. Fue entonces cuando se introdujo el símbolo unscopable. Un ajuste incorporado de unscopables se implementa como Array.prototype[@@unscopables] para evitar que algunos de los métodos de Array se encuentren dentro de la declaración with.

const keys = [];

with (Array.prototype) {
  keys.push("something");
}

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

También puede establecer unscopables para sus propios objetos.

const obj = {
  foo: 1,
  bar: 2,
};

obj[Symbol.unscopables] = {
  foo: false,
  bar: true,
};

with (obj) {
  console.log(foo); // 1
  console.log(bar); // ReferenceError: bar is not defined
}
Especificaciones Compatibilidad con navegadores Véase también

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4