Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo detectar valores de referencia en desarrollo web

Cómo detectar valores de referencia en desarrollo web

Lo que les traemos esta vez es cómo detectar valores de referencia en el desarrollo web. ¿Cuáles son las precauciones para detectar valores de referencia en el desarrollo web? Aquí hay un caso práctico, echemos un vistazo.

Los valores de referencia también se denominan objetos. En JS, los valores distintos de los valores primitivos son referencias. Hay varios tipos de referencia integrados: por ejemplo, objeto, matriz, fecha y error, y el operador typeof no es suficiente para determinar estos tipos de referencia porque todos los objetos devuelven "objeto".

Otro uso obsoleto de typeof es detectar el tipo de null . El operador typeof devuelve "objeto" para todos los valores nulos. Esto parece extraño y se considera un error grave en el estándar, por lo que debes evitar usar typeof para detectar el tipo nulo al programar.

La mejor manera de detectar el tipo de un valor de referencia es utilizar el operador instanciaof. La cadena de prototipos contiene una gran cantidad de información, incluido el modelo de herencia utilizado para definir el objeto. Por ejemplo, de forma predeterminada, cada objeto hereda de Object, por lo que el valor de instancia de Objeto devuelve verdadero para cada objeto; por lo tanto, usar el valor de instancia de Objeto para determinar si un objeto es de un tipo específico no es ideal;

El operador instancia de también puede detectar tipos personalizados, por ejemplo:

función Persona (nombre) { this.name = nombre

}var me = new; Person('Nicholas'); console.log(meinstanceof Object); //trueeconsole.log(meinstanceofPersona); // true La mejor manera de detectar tipos personalizados en JS es utilizar el operador instanciade, que es el único. método. Lo mismo ocurre con los tipos JS integrados (usando el operador instancia de). Sin embargo, esto tiene una seria limitación.

Supongamos que pasa un objeto de un marco del navegador (marco A) a otro marco (marco B). El constructor Persona se define en ambos marcos, si el objeto del marco A es una instancia de Persona del marco A, se cumplen las siguientes reglas.

frameAPersonInstance instancia de frameAPerson; // trueframeAPersonInstance instancia de frameBPerson; // false Dado que hay una copia de Persona por cuadro, se trata como una copia de ese cuadro. Este problema ocurre no sólo en tipos personalizados, sino también en otros dos tipos integrados muy importantes: funciones y matrices. Para ambos tipos, generalmente no es necesario utilizar instancia de.

Creo que dominas este método después de leer este artículo. Para obtener más información interesante, ¡presta atención a otros artículos relacionados en Gxl.com!

Lectura recomendada:

Cómo detectar valores primitivos en desarrollo web

Cómo usar JS para paso por referencia y paso por valor