Un resumen de varios métodos para crear objetos JS
Primer tipo: creación del constructor de objetos
Persona = Objeto(); Esta línea de código crea una nueva instancia del tipo de referencia de objeto y luego guarda la instancia en la variable Persona.
Segundo: Usar notación literal de objeto
Persona = 'Nike'29 La notación literal de objeto es una forma abreviada de definición de objeto, diseñada para simplificar la creación de objetos que contienen una gran cantidad de propiedades. proceso de objeto. En otras palabras, el primer y segundo método para crear objetos son en realidad los mismos, solo que están escritos de diferentes maneras.
Antes de presentar el tercer método para crear objetos, primero debemos entender por qué hay otras formas de crear objetos. , y esa es la desventaja del primer y segundo método: ambos usan la misma interfaz para crear muchos objetos, lo que crea una gran cantidad de código duplicado, es decir, si tienes 100 objetos, producirá una gran cantidad de código duplicado. Es decir, si tienes 100 objetos, entonces debes ingresar el mismo código 100 veces. Por lo tanto, debemos evitar demasiada duplicación de código, es decir, encapsular el proceso de creación de objetos en el cuerpo de la función y generar objetos directamente a través de llamadas a funciones.
Tercero: usar el modo fábrica para crear objetos
función createPerson(name, age, job){
var o = new Object()
o.nombre = nombre;
o.edad = edad;
o.trabajo = trabajo
o.sayName = función(); {
alerta(este.nombre);
}; return o;
}var persona1 = createPerson('Nike', 29, 'profesor' ) ;var person2 = createPerson('Arvin', 20, 'student');
Al usar el patrón de fábrica para crear objetos, todos notaremos que la función createPerson devuelve un objeto. Entonces no podemos determinar qué tipo de objeto se devuelve. Por lo tanto, surge el cuarto modo de crear objetos.
Cuarto: Usar constructor para crear objetos
.name =.age =.job =.sayName = person1 = Person('Nike', 29, 'teacher'); p>
var person2 = new Person('Arvin', 20, 'student');
Comparando el patrón de fábrica, podemos encontrar las siguientes diferencias:
1. No se crea ningún objeto de visualización
2. Las propiedades y los métodos se asignan directamente al objeto
3. No hay ninguna declaración de devolución
4. El objeto finalmente está disponible identificado. Para detectar el tipo de objeto debemos utilizar el operador instancia de. Realicemos una detección independiente:
alert(persona1 instanciade Objeto); //ture
alert(persona1 instanciade Persona);