En el artículo anterior, los objetos y prototipos en JavaScript (i) mencionaron algunas operaciones básicas en la creación de objetos en JavaScript, y continuarán discutiéndolos a continuación.
Un modelo de fábrica
Sabemos que para crear un objeto podemos usar el siguiente código:
Var user = new Object (); // Crear un objeto usando el nuevo operador user.name = 'recitado en el lago Triangle'; // Agregar atributos al objeto user.age = 22; user.address = 'hubei wuhan'; alert (user.name + "" + user.age); // regresa 'recitado en el triángulo el lago' Hubei Wuhan '
Crear objetos de esta manera es simple e intuitivo, y también es el método más básico para crear objetos en JavaScript. Pero hay un problema como este, si necesitamos crear múltiples objetos, entonces tengo que escribir mucho código duplicado. Por ejemplo, si queremos crear otro usuario de Object1, tenemos que reescribir el código anterior nuevamente, lo cual es inapropiado en el proceso de desarrollo real. De esta manera, si hay demasiados objetos, la cantidad de código aumentará enormemente.
Para resolver tal problema, podemos usar un método llamado Patrón de fábrica, que es resolver el problema de instanciar objetos que producen una gran cantidad de código duplicado.
función create (name, edad) {var obj = new Object (); obj.name = nombre; obj.age = edad; obj.run = function () {return this.name + '' + this.age; }; return obj;} var obj1 = create ('zxc', 10); // La primera instancia var obj2 = create ('cxz', 20); // la alerta de segunda instancia (obj1.run ()); alerta (obj1.run ());En el código anterior, podemos ver que el patrón de fábrica resuelve el problema de la duplicación a gran escala del código durante la instancia, pero surge otro problema, es decir, identificar el problema, no podemos entender qué objeto son. Por ejemplo
alerta (typeOf obj1); // Objectalert (obj1 instancia de objeto); //verdadero
El código anterior indica que Box1 es un objeto de objeto, pero no podemos saber qué objeto se creó.
Dos constructor (método de construcción)
Para resolver el problema anterior, podemos usar constructores para crear objetos. La única diferencia entre un constructor y una función normal es que el método de llamada es diferente. Sin embargo, el constructor también es una función.
Función user (nombre, edad) {// Modo constructor this.name = name; this.age = edad; this.run = function () {return this.name + '' + this.age; };}Simplemente use el nuevo operador al crear un objeto:
VAR user1 = new User ('ZXC', 25); var user2 = new user ('cxz', 22);Ahora podemos detectar si User1 o User2 pertenecen al usuario.
alerta (user1 instancia de usuario); // Verdadero
Se puede ver que el uso del método del constructor resuelve el problema de la instanciación repetida y también resuelve el problema del reconocimiento de objetos.
El proceso de ejecución cuando se usa un constructor es el siguiente:
1. Al ejecutar el nuevo constructor (), el fondo ejecuta nuevo objeto ();
2. Alcance el constructor al nuevo objeto.
3. Ejecutar el código dentro del constructor;
4. El fondo devuelve directamente el nuevo objeto.
A continuación, echemos un vistazo a los problemas de función dentro del constructor. Si ejecutamos la siguiente declaración:
alerta (user1.run == user2.run); // El resultado devuelve falso
El resultado devuelve False, lo que significa que el método es en realidad una dirección de referencia. Si creamos múltiples objetos repetidamente, los métodos en cada objeto abrirán un nuevo espacio en la memoria, lo que desperdiciará más espacio. Para resolver este problema, necesitamos usar el intercambio de propiedades o métodos de instancia. Continuaremos discutiendo para resolver este problema en el próximo artículo.
Lo anterior son los objetos y prototipos en JavaScript presentados por el editor (ii). Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!