Objetos de JavaScript
En JavaScript, los objetos son rey. Si usted entiende los objetos, que entiende JavaScript.
En JavaScript, casi "todo" es un objeto.
- Booleans pueden ser objetos (o datos primitivos tratados como objetos)
- Numbers pueden ser objetos (o datos primitivos tratados como objetos)
- Strings pueden ser objetos (o datos primitivos tratados como objetos)
- Dates son siempre objetos
- Maths son siempre objetos
- Regular expresiones son siempre objetos
- Arrays son siempre objetos
- Functions son siempre objetos
- Objects son objetos
En JavaScript, todos los valores, excepto los valores primitivos, son objetos.
Los valores primitivos son: cuerdas ("John Doe") , números (3.14), true, false, null y undefined .
Los objetos son variables que contiene variables
las variables de JavaScript pueden contener valores individuales:
Los objetos son variables también. Sin embargo, los objetos pueden contener muchos valores.
Los valores se escriben como nombre: pares de valores (nombre y valor separados por dos puntos).
Ejemplo
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Inténtalo tú mismo " Un objeto de JavaScript es un conjunto de valores con nombre
Propiedades del objeto
Los valores con nombre, en objetos JavaScript, se denominan propiedades.
Propiedad | Valor |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
Objetos escritos en forma de pares de nombre y valor son similares a:
- Las matrices asociativas en PHP
- Diccionarios en Python
- Las tablas hash en C
- Los mapas de hash en Java
- Hashes en Ruby y Perl
Métodos de objetos
Los métodos son acciones que se pueden realizar sobre los objetos.
Las propiedades de objeto pueden ser ambos valores primitivos, otros objetos, y funciones.
Un método de objeto es una propiedad del objeto que contiene una definición de función.
Propiedad | Valor |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function() {return this.firstName + " " + this.lastName;} |
objetos de JavaScript son contenedores de valores con nombre, llamadas propiedades y métodos.
Usted aprenderá más sobre los métodos en los próximos capítulos.
Creación de un objeto JavaScript
Con JavaScript, puede definir y crear sus propios objetos.
Hay diferentes maneras de crear nuevos objetos:
- Definir y crear un único objeto, utilizando un objeto literal.
- Definir y crear un único objeto, con la palabra clave nueva.
- Definir un constructor de objetos, y luego crear objetos del tipo construido.
En ECMAScript 5, un objeto también se puede crear con la función Object.create() .
El uso de un objeto literal
Esta es la forma más fácil de crear un objeto de JavaScript.
El uso de un objeto literal, tanto definir y crear un objeto en un comunicado.
Un objeto literal es una lista del nombre: pares de valores (como age:50 ) dentro de llaves {} .
El siguiente ejemplo crea un nuevo objeto JavaScript con cuatro propiedades:
Ejemplo
var
person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Inténtalo tú mismo " Los espacios y saltos de línea no son importantes. Una definición de objeto puede ocupar varias líneas:
Ejemplo
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"blue"
};
Inténtalo tú mismo " Usando el nuevo JavaScript Palabra clave
El siguiente ejemplo también crea un nuevo objeto JavaScript con cuatro propiedades:
Ejemplo
var
person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Inténtalo tú mismo " Los dos ejemplos anteriores hacen exactamente lo mismo. No hay necesidad de utilizar new Object() .
Por simplicidad, legibilidad y la velocidad de ejecución, utilice el primero de ellos (el método literal de objeto).
El uso de un constructor de objetos
Los ejemplos anteriores son limitados en muchas situaciones. Ellos sólo crean un único objeto.
A veces nos gusta tener un "tipo de objeto" que se puede utilizar para crear muchos objetos de un mismo tipo.
La forma habitual de crear un "tipo de objeto" es utilizar una función de objeto constructor:
Ejemplo
function person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
var
myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
Inténtalo tú mismo " La función anterior (persona) es un constructor de objetos.
Una vez que tenga un constructor de objetos, puede crear nuevos objetos del mismo tipo:
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
La this Palabra clave
En JavaScript, lo que llamamos this , es el objeto que "posee" el código JavaScript.
El valor de this , cuando se utiliza en una función, es el objeto que "posee" la función.
El valor de this , cuando se utiliza en un objeto, es el objeto mismo.
La this palabra clave en un constructor de objetos no tiene un valor. Sólo es un sustituto para el nuevo objeto.
El valor de this se convierta en el nuevo objeto cuando se utiliza el constructor para crear un objeto.
Tenga en cuenta que esto no es una variable. Es una palabra clave. No se puede cambiar el valor de this .
Built-in de JavaScript Constructores
JavaScript tiene constructores incorporadas para objetos nativos:
Ejemplo
var x1 = new Object(); // A new Object object
var x2 = new String(); // A new String object
var x3 = new Number(); // A new Number object
var x4 = new Boolean() // A new Boolean object
var x5 = new Array(); // A new Array object
var x6 = new RegExp(); // A new RegExp object
var x7 = new Function(); // A new Function object
var x8 = new Date(); // A new Date object
Inténtalo tú mismo " La Math() objeto no está en la lista. La matemática es un objeto global. La nueva palabra clave no se puede utilizar en las matemáticas.
¿Sabías?
Como se puede ver, JavaScript tiene versiones de los tipos de datos primitivos de cadena, número y booleanas objetar.
No hay ninguna razón para crear objetos complejos. Los valores primitivos ejecutan mucho más rápido.
Y no hay ninguna razón para utilizar el nuevo Array() . Utilizar literales de matriz en su lugar: []
Y no hay ninguna razón para utilizar las nuevas RegExp() . Utilizar literales de patrones en su lugar: /()/
Y no hay razón para usar la nueva Function() . Utilizar las expresiones de función en su lugar: function () {} .
Y no hay ninguna razón para utilizar new Object() . Utilizar literales en su lugar: {}
Ejemplo
var x1 = {}; // new object
var x2 = ""; // new primitive string
var x3 = 0; // new primitive number
var x4 = false; // new primitive boolean
var x5 = []; // new array object
var x6 = /()/ // new regexp object
var x7 = function(){}; // new function object
Inténtalo tú mismo " Objetos de JavaScript son mutables
Los objetos son mutables: Están dirigidas por referencia, no por valor.
Si y es un objeto, la siguiente declaración no creará una copia de y:
var x = y; // This will not create a copy of y.
El objeto x no es una copia de y. Que es y. Ambos puntos X e Y al mismo objeto.
Cualquier cambio en Y también cambiará x, ya que X e Y son el mismo objeto.
Ejemplo
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
var x = person;
x.age = 10; // This will change both x.age and person.age
Inténtalo tú mismo "