Los objetos son un tipo especial de variables. Estos pueden contener muchos atributos. Normalmente consisten en varias variables y funciones, las cuales son llamadas propiedades y métodos cuando están dentro de un objeto.
El siguiente ejemplo crea un objeto usando la sintaxis de literal de objeto:
var persona1 = {
nombre: "Javier",
edad: 40,
url: "www.qe2computing.com"
};
Tabla de contenidos
Propiedades de los objetos
Accedemos a las propiedades de los objetos de 2 formas:
- nombreObjeto.nombrePropiedad
- nombreObjeto[‘nombrePropiedad’]
var nombre = persona1.nombre;
var edad = persona1['edad'];
La propiedad predefinida 'length' nos permite obtener el número de caracteres de una propiedad o cadena.
document.write(persona1.nombre.length); /* Salida en pantalla: 6 */
Es posible utilizar un literal numérico o de cadena para el nombre de una propiedad, o bien anidar un objeto dentro de otro. Estos ejemplos usan estas funcionalidades:
var tema = { informatica: {a: ‘BDD’, b: ‘programacion’, c: ‘SOs’}, 5: ‘fisica’, 6: ‘matematicas’ };
console.log(tema.informatica.b); /* Salida: programacion /
console.log(tema[5]); / Salida: ‘fisica’ */
Métodos de los objetos
Los métodos son funciones que pertenecen a objetos. En la sentencia document.write(«textoAMostrar»); ‘write’ es un método predefinido del objeto ‘document’. Acedemos al método de un objeto en la forma:
nombreObjeto.nombreMetodo(parámetros);
El constructor de objetos
Segundo y más usual sintaxis para crear objetos, es usar una función constructora de objetos, que será una especie de «plantilla» para crear objetos del mismo tipo:
function coche(marca,modelo,color,velocidad) {
this.marca = marca;
this.modelo = modelo;
this.color = color;
this.vel = velocidad;
this.cambiaVelocidad = function(modificador) {
this.vel = this.vel + mofificador;
} // Crea el método cambiaVelocidad()
}
La palabra clave ‘this’ se refiere al objeto actual. Esto significa: el objeto que se está creando actualmente, o el objeto con el cual se ha llamado a un método, como en el ejemplo de la llamada ‘c1.cambiaVelocidad(120);’ de la siguiente sección, donde es obvio que this se refiere a c1.
Se podría haber creado la función cambiaVelocidad() fuera del constructor, y asociarla con el objeto, como en este ejemplo, esta vez con el constructor de objetos ‘persona’:
function persona(nombre,anoNacimiento) {
this.nombre = nombre;
this.anoNacimiento = anoNacimiento;
this.edad = calculaEdad; /* La propiedad 'edad' se asigna a la función calculaEdad() */
}
function calculaEdad() {
return 2020 - this.anoNacimiento;
}
var p = new persona("Javier",1976);
document.write(p.edad()); /* Llama con el nombre de la propiedad, en vez de con el nombre de función */
Crear objetos
Habiendo creado ya el constructor coche() del ejemplo anterior, podemos crear múltiples objetos de tipo coche usando la palabra ‘new’:
var c1 = new coche("Renault", "18","Azul", 180); document.write(c1.velocidad); // Muestra en pantalla '180' c1.cambiaVelocidad(-20); /* Esta llamada reduce la velocidad de c1 en 20km/h, lo que lo deja en 160 */
Ahora, c1 es un objeto del tipo coche, y su velocidad es de 120.
Expresiones regulares
Una expresión regular nos permite buscar coincidencias dentro de un texto, o comprobar que una cadena tiene un formato concreto (DNI, e-mail, tlf, …). Utilizamos para trabajar estas expresiones el objeto RegExp.
Arrays o matrices
Un array, en cualquier lenguaje de programación, es simplemente una lista de elementos.
Los arrays en JS son dinámicos, lo cual nos permite crear un array, y agregarle elementos en cualquier momento posterior.
El índice de los arays en JS es numérico, empezando en 0.
Los arrays JS solo funcionan con índices númericos. Si queremos usar índices basados en texto, es recomendable usar objetos en vez de arrays. Si utilizáramos índices de textos en arrays, JS redefiniría estos como objetos.
Sintaxis 1. Literal de array:
var temas = ["BDD","Programación","Sistemas operativos","Aplicaciones"];
Sintaxis 2. Se declara un nuevo array llamado temas, que contiene 4 valores. Es una práctica común crear arrays constantes, con la palabra const:
const temas = new Array("BDD", "Programación", "Sistemas operativos", "Aplicaciones");
Sintaxis 3. Al crear puede o no indicarse el número de elementos. Estos se agregan posteriormente:
var temas = new array(4); // 4 es opcional, ya que son arays dinámicos. temas[0] = "BDD"; temas[1] = "Programación"; ...
Acceso a elementos de un array
Intentar acceder a un índice fuera de un array, devuelve el valor undefined. En el ejemplo, temas[4] no existe, puesto que se accede a la última posición (4ª), con temas[3].
Propiedades y métodos predefinidos de los arrays
Propiedad | Descripción | Sintaxis |
length | Devuelve el número de elementos de un array | nombreArray.length |
Método | Descripción | Sintaxis |
concat() | Une/combina arrays, creando un nuevo array que contendrá todos los elementos de los arrays pasados como parámetros al método. Los arrays usados en la combinación no sufren cambios. | var nuevoArray = array1.concat(array2); |