Baseline Widely available
ResumenLos operadores de miembros proporcionan acceso a las propiedades y métodos de un objeto.
Un objeto es en realidad un arreglo asociativo (por ejemplo map ,dictionary ,hash ,lookup table ). Las claves en este arreglo son los nombres de las propiedades y los métodos (propiedades que hacen referencia a funciones). Hay dos modos de acceder a estas propiedades: notación por punto y notación por corchete (es decir, operador de subscripción).
Nota: La especificación ECMAScript etiqueta estos operadores como "property accessors" en vez de "operadores de miembro" (member operators).
Notación por puntoget = objeto.propiedad;
objeto.propiedad = set;
propiedad
debe ser un identificador válido de JavaScript, esto es, una secuencia alfanumérica de caracteres, incluyendo también el guión bajo ("_
") y el signo dolar ("$
"), que no puede comenzar por un número. Por ejemplo, objeto.$1
es válido, mientras que objeto.1
no lo es.
Ejemplo:
document.createElement("pre");
AquÃ, el método llamado "createElement" se recupera de document
y se le llama.
get = objeto[nombre_propiedad];
objeto[nombre_propiedad] = set;
nombre_propiedad
es una cadena. La cadena no tiene que ser un identificador válido; puede tener cualquier valor, por ejemplo "1foo", "!bar!", o incluso " " (un espacio).
Ejemplo:
document["createElement"]("pre");
Esto hace exactamente lo mismo que el ejemplo anterior.
Nombres de propiedadesLos nombres de propiedades deben ser cadenas. Esto significa que no pueden usarse objetos distintos a cadenas como claves en un objeto. Cualquier objeto que no sea una cadena, incluyendo números, se convierte al tipo cadena a través de su método Object.toString
.
Ejemplos:
var objeto = {};
objeto["1"] = "valor";
alert(objeto[1]);
Ãsto tendrá como resultado "valor", ya que 1 se convertirá por tipo a '1'.
var foo = { propiedad_unica: 1 },
bar = { propiedad_unica: 2 },
objeto = {};
objeto[foo] = "valor";
alert(objeto[bar]);
Ãsto también tiene como resultado "valor", ya que tanto foo como bar se convierten a la misma cadena. En el motor de JavaScript SpiderMonkey, esta cadena serÃa [objeto Object]
.
Un método no está enlazado al objeto del que es método. EspecÃficamente, this
no está establecido en un método, es decir, this
no se refiere necesariamente a un objeto conteniendo el método. this
, en cambio, se "pasa" mediante la llamada de función.
Vea enlace a métodos.
Nota sobreeval
Los principiantes en JavaScript a menudo tienen el error de usar eval
cuando la notación por corchetes puede usarse a cambio. Por ejemplo, la siguiente sintaxis se ve a menudo en muchos scripts.
x = eval("document.nombre_formulario." + cadenaControlFormulario + ".value");
eval
es lenta y se deberÃa evitar en la medida de lo posible. Es mejor usar la notación por corchetes a cambio:
x = document.nombre_formulario[cadenaControlFormulario].value;
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