JavaScript Objetos
Todas las cosas en JavaScript son objetos: cadenas, números, arrays, funciones...
Además, JavaScript permite definir objetos personalizados.
Todas las cosas son objetos
JavaScript proporciona varios objetos integrados, como String, Date, Array, etc. Los objetos son solo un tipo de dato especial que tiene propiedades y métodos.
- Un booleano puede ser un objeto.
- Un número puede ser un objeto.
- Una cadena también puede ser un objeto.
- Una fecha es un objeto.
- Math y las expresiones regulares también son objetos.
- Un array es un objeto.
- Incluso las funciones pueden ser objetos.
Objetos de JavaScript
Un objeto es solo un tipo especial de datos. Los objetos tienenPropiedadesyMétodos。
Acceder a las propiedades de un objeto
Las propiedades son valores asociados con un objeto.
La sintaxis para acceder a las propiedades de un objeto es:
objectName.propertyName
Este ejemplo utiliza la propiedad length del objeto String para obtener la longitud de la cadena:
var message="Hello World!"; var x=message.length;
Después de ejecutar el código anterior, el valor de x será:
12
Acceder a los métodos de un objeto
Los métodos son acciones que se pueden ejecutar sobre un objeto.
Puede llamar a un método mediante la siguiente sintaxis:
objectName.methodName()
Este ejemplo utiliza el método toUpperCase() del objeto String para convertir el texto a mayúsculas:
var message="Hello world!"; var x=message.toUpperCase();
Después de ejecutar el código anterior, el valor de x será:
HELLO WORLD!
Crear objetos JavaScript
Con JavaScript, puede definir y crear sus propios objetos.
Hay dos formas diferentes de crear nuevos objetos:
- Usar Object para definir y crear una instancia de objeto.
- Usar una función para definir un objeto y luego crear una nueva instancia de objeto.
Usar Object
En JavaScript, casi todos los objetos son instancias del tipo Object; todos heredan propiedades y métodos de Object.prototype.
El constructor Object crea un envoltorio de objeto.
El constructor Object crea un objeto según los argumentos dados, en los siguientes casos:
- Si el valor dado es null o undefined, se creará y devolverá un objeto vacío.
- Si se pasa un valor de tipo primitivo, se construirá un objeto de su tipo envoltorio.
- Si se pasa un valor de tipo de referencia, se devolverá ese mismo valor; las variables que lo copian mantienen la misma dirección de referencia que el objeto original.
- Cuando se llama como una función sin usar new, Object se comporta igual que new Object().
Formato de sintaxis:
// 以构造函数形式来调用 new Object([value])
value puede ser cualquier valor.
El siguiente ejemplo usa Object para generar un objeto booleano:
// 等价于 o = new Boolean(true); var o = new Object(true);
Este ejemplo crea una nueva instancia de objeto y le agrega cuatro propiedades:
Ejemplo
Pruébelo »
También puede usar un literal de objeto para crear objetos, con el siguiente formato de sintaxis:
var myObject = {
key1: value1,
key2: value2,
// 更多键值对...
};
- myObject:Nombre de la variable, que se usa para hacer referencia a todo el objeto.
- key1, key2:Nombre de la propiedad, puede ser una cadena o un identificador.
- value1, value2:Valor de la propiedad, puede ser cualquier tipo de dato de JavaScript, incluidos números, cadenas, booleanos, funciones, arrays e incluso otros objetos.
Ejemplo
firstName: 'John',
lastName: 'Doe',
age: 30,
isStudent: false,
greet: function() {
console.log('Hello, I am ' + this.firstName + ' ' + this.lastName);
}
};
console.log(person.firstName); // Salida: John
person.greet(); // Salida: Hello, I am John Doe
Un objeto de JavaScript es unaname:valuecolección.
Usar constructores de objetos
Este ejemplo usa una función para construir un objeto:
Ejemplo
Pruébelo »
En JavaScript, this generalmente se refiere a la función que estamos ejecutando, o al objeto al que pertenece la función (en tiempo de ejecución).
Crear instancias de objetos JavaScript
Una vez que tenga un constructor de objetos, puede crear nuevas instancias de objeto, así:
var myFather=new person("John","Doe",50,"blue");
var myMother=new person("Sally","Rally",48,"green");
Agregar propiedades a un objeto JavaScript
Puede agregar nuevas propiedades a un objeto existente asignándole valores:
Suponga que el objeto person ya existe: puede agregarle estas nuevas propiedades: firstname, lastname, age y eyecolor:
person.firstname="John"; person.lastname="Doe"; person.age=30; person.eyecolor="blue"; x=person.firstname;
Después de ejecutar el código anterior, el valor de x será:
John
Agregar métodos a un objeto JavaScript
Los métodos son simplemente funciones adjuntas a un objeto.
Defina los métodos del objeto dentro de la función constructora:
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}
}
La función changeName() asigna el valor de name a la propiedad lastname de person.
Clases de JavaScript
JavaScript es un lenguaje orientado a objetos, pero no usa clases.
En JavaScript, no se crean clases ni se crean objetos mediante clases (como en otros lenguajes orientados a objetos).
JavaScript se basa en prototipos (prototype), no en clases.
Bucle for...in de JavaScript
La declaración for...in de JavaScript itera sobre las propiedades de un objeto.
Sintaxis
for (variable in object)
{
执行的代码……
}
Nota:El bloque de código dentro del bucle for...in se ejecutará una vez por cada propiedad.
Ejemplo
Iterar sobre las propiedades de un objeto:
Ejemplo
Pruébelo »
Los objetos de JavaScript son mutables
Los objetos son mutables; se pasan por referencia.
En el siguiente ejemplo, el objeto person no crea una copia:
var x = person; // 不会创建 person 的副本,是引用
Si modifica x, las propiedades de person también cambiarán:
Ejemplo
Pruébelo »