(I) Método y atributo de selección dinámica
En el trabajo real, a menudo nos encontramos con esta situación: llame a uno de los dos métodos [1] de acuerdo con una determinada condición, o lea y escriba operaciones en uno de los dos atributos [2]. El siguiente código muestra esto:
La copia del código es la siguiente:
if (condición) {
myobj.method1 (somearg);
} demás {
myobj.method2 (somearg);
}
JavaScript proporciona una sintaxis simple que utiliza operadores de soporte cuadrado ([]) para seleccionar dinámicamente métodos y propiedades. Como se muestra en el siguiente código, JavaScript tiene dos sintaxis de acceso miembro equivalente (esta característica es común en los idiomas dinámicos):
obj [ExpressionResultingInmembername] == obj.membername
Si ha usado subíndices enteros para acceder a un elemento en una matriz, ya ha comenzado a usar operadores de soporte cuadrado para hacer una selección dinámica de miembros. Esto se debe a que el objeto de matriz en sí contiene atributos (y atributos de longitud) que llevan el nombre del subíndice de números. Sin embargo, JavaScript no le permite acceder directamente a estas propiedades usando operadores de puntos (.), Por lo que MyArray.0 es sintácticamente ilegal (es una pena, es una sintaxis genial).
¿Por qué los operadores de soporte cuadrado son más potentes que la notación del operador DOT? Esto se debe a que puede acceder al miembro del objeto utilizando cualquier contenido que represente el nombre del miembro en los soportes cuadrados. Estos incluyen literales, variables que contienen nombres de miembros, combinaciones de nombres (principalmente empalme de cadenas) y selección rápida de if/luego utilizando operadores ternarios (¿condición? Valueiftrue: ValueAffalse). Todo este contenido se procesará en una cadena, y luego JavaScript usará esta cadena para encontrar los miembros correspondientes.
Dado que una función en JavaScript es en sí misma un objeto, se puede hacer referencia como otros valores. Si el resultado de una expresión es una función, puede llamarlo directamente con el operador del soporte, al igual que llama a la función directamente con el nombre de la función.
Cabe señalar que si usa este truco en gran medida en los parámetros que pasa al método, los paréntesis confusos pueden dificultar el código de leer, y es más sabio usar la estructura regular IF/Else en este momento.
(Ii) Propiedades y métodos del objeto transversal de JavaScript
JavaScript utiliza la declaración para para iterar sobre las propiedades y métodos de un objeto. El para en la declaración a través de un objeto JavaScript.
gramática:
La copia del código es la siguiente:
para (valueName en objectName) {
// código
}
Donde valueName es el nombre de la variable, que contiene el nombre de la propiedad o el método.