Usando la función constructora Object () incorporada, podemos crear objetos genéricos vacíos sobre la marcha. De hecho, si recuerda el principio del Capítulo 1, esto es exactamente lo que hicimos al crear el objeto cody. Permite recrear el objeto cody..
Muestra: sample69.html
Aquí, todo lo que estamos haciendo es usar el Objeto()
Función constructora para crear un objeto genérico llamado cody. Puedes pensar en el Objeto()
El constructor es un cortador de cookies para crear objetos vacíos que no tienen propiedades o métodos predefinidos (excepto, por supuesto, los heredados de la cadena del prototipo).
Si no es obvio, el Objeto()
El constructor es un objeto en sí mismo. Es decir, la función constructora se basa en un objeto creado a partir de la Función
constructor. Esto puede ser confuso. Solo recuerda que como el Formación
constructor, el Objeto
El constructor simplemente escupe objetos en blanco. Y sí, puedes crear todos los objetos vacíos que quieras. Sin embargo, crear un objeto vacío como cody es muy diferente a crear su propia función constructora con propiedades predefinidas. Asegúrese de comprender que cody es solo un objeto vacío basado en el Objeto()
constructor. Para aprovechar realmente el poder de JavaScript, tendrá que aprender no solo cómo crear contenedores de objetos vacíos desde Objeto()
, sino también cómo construir su propia "clase" de objetos (Persona()
) como el Objeto()
la propia función constructora.
Objeto()
Parámetroslos Objeto()
La función constructora toma un parámetro opcional. Ese parámetro es el valor que le gustaría crear. Si no proporciona ningún parámetro, entonces un nulo
o indefinido
se asumirá el valor.
Muestra: sample70.html
Si un valor además nulo
o indefinido
se pasa a la Objeto
constructor, el valor pasado será creado como un objeto. Entonces, teóricamente, podemos usar el Objeto()
constructor para crear cualquiera de los otros objetos nativos que tienen un constructor. En el siguiente ejemplo, hago precisamente eso..
Muestra: sample71.html
Objeto()
Propiedades y metodoslos Objeto()
el objeto tiene las siguientes propiedades (sin incluir propiedades y métodos heredados):
Propiedades (Objeto.prototipo;
):
prototipo
Objeto()
Propiedades y métodos de instanciaObjeto()
las instancias de objetos tienen las siguientes propiedades y métodos (no incluyen propiedades y métodos heredados):
Propiedades de instancia (var myObject = ;
myObject.constructor;
):
constructor
Métodos de instancia (var myObject = ;
myObject.toString ();
):
hasOwnProperty ()
isPrototypeOf ()
propertyIsEnumerable ()
toLocaleString ()
Encadenar()
valor de()
La cadena del prototipo termina con Objeto.prototipo
, y por lo tanto todas las propiedades y métodos de Objeto()
Son heredados por todos los objetos de JavaScript..
Objeto()
Objetos usando "objetos literales"Crear un "objeto literal" implica crear una instancia de un objeto con o sin propiedades utilizando llaves (var cody = ;
). ¿Recuerda al principio del Capítulo 1 cuando creamos el objeto cody de una sola vez y luego le dimos las propiedades del objeto cody usando notación de puntos? Vamos a hacer eso otra vez.
Muestra: sample72.html
Observe en el código que la creación del cody
Objeto y sus propiedades tomaron cinco declaraciones. Usando el objeto de notación literal podemos expresar lo mismo. cody
objeto en una declaración.
Muestra: sample73.html
El uso de la notación literal nos permite crear objetos, incluidas las propiedades definidas, con menos código y encapsular visualmente los datos relacionados. Observe el uso de la :
y ,
Operadores en una sola declaración. Esta es en realidad la sintaxis preferida para crear objetos en JavaScript debido a su terseness y legibilidad.
Debe tener en cuenta que los nombres de propiedades también se pueden especificar como cadenas:
Muestra: sample74.html
No es necesario especificar las propiedades como cadenas a menos que el nombre de la propiedad:
clase
).¡Cuidadoso! La última propiedad de un objeto no debe tener una coma al final. Esto causará un error en algunos entornos de JavaScript.
Objeto.prototipo
los Objeto()
La función constructora en JavaScript es especial, ya que su prototipo
La propiedad es la última parada en la cadena de prototipos..
En la siguiente muestra, añado el Objeto.prototipo
con un foo
propiedad y luego crear una cadena e intentar acceder a la foo
propiedad como si fuera una propiedad de la instancia de cadena. Desde el myString
instancia no tiene un foo
propiedad, la cadena de prototipos se activa y el valor se busca en String.prototype
. No está allí, por lo que el siguiente lugar para mirar es Objeto.prototipo
, que es la ubicación final, JavaScript buscará un valor de objeto. los foo
El valor se encuentra porque lo agregué, por lo que devuelve el valor de foo
.
Muestra: sample75.html
¡Cuidadoso! Cualquier cosa añadida a Objeto.prototipo
aparecerá en una para en
Bucle y la cadena prototipo. Debido a esto, se ha dicho que el cambio Objeto.prototipo
está prohibido.