Miembros

Resumen

Los 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 punto

get = 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.

Notación por corchetes

get = objeto[nombre_propiedad];
objeot[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 propiedades

Los 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]".

Enlace a métodos

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 sobre eval

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;

Etiquetas y colaboradores del documento

Etiquetas: 
 Colaboradores en esta página: SphinxKnight, teoli, Talisker
 Última actualización por: SphinxKnight,