Tema 3.2. Objetos de Datos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 17

Tema 3.2.

Objetos de Datos

• Definición de Objetos
• Operaciones sobre objetos
• JSON
• Recorrer Objetos
Tema 3.2.
Objetos de Datos

JavaScript está diseñado en un paradigma basado en objetos. Un objeto es una


colección de propiedades, y una propiedad es una asociación entre un nombre y un
valor. Un valor de propiedad puede ser una función, la cual es conocida entonces como
un método del objeto
Los objetos en JavaScript tienen propiedades (variables) y métodos (funciones)
• En JavaScript, un objeto es un entidad independiente
• Los objetos son variables que pueden contener diferentes valores. Un objeto de
JavaScript es un conjunto de valores con nombre
• Los objetos se utilizan para organizar el código fuente de una forma más clara y
para encapsular métodos y funciones comunes
Utilización de objetos permite:
1. Aprovechar todas las herramientas y utilidades que proporciona JavaScript
para su manejo
2. Añadir propiedades y métodos propios para definir su comportamiento
Es muy útil crear uno cuando deseamos transferir una serie de elementos de datos
relacionados y estructurados de alguna manera, por ejemplo, enviando una solicitud al
servidor para ponerla en una base de datos. Enviar un solo objeto es mucho más eficiente
que enviar varios elementos individualmente, y es más fácil de procesar que con una matriz,
cuando desea identificar elementos individuales por nombre
Tema 3.2.
Objetos de Datos
Definición de Objetos
1. Usando el objeto Object. Object representa a los objetos literales (o instancias
directas) que son los objetos más sencillos que pueden crearse en Javascript. No es
necesario definirlos con una estructura completa inicialmente, sino que se pueden ir
construyendo al vuelo.
Ejemplo1: se construye el objeto notas vacío, y después se va llenando, con las
propiedades valores,cantidad y media, y el método verMedia:
const notas= new Object();
notas.valores=[2,5,7,9,10];
notas.cantidad=notas.valores.length;
notas.media=notas.valores.reduce((a,b)=>a+b,0)/notas.cantidad;
notas.verMedia=function(){
console.log(notas.media);
}
notas.verMedia();
Ejemplo2: se construye otro objeto:
const persona = new Object();
persona.nombre=“José”;
persona.apellido=“Sánchez”;
persona.edad=35;
persona.profesion=“pintor”;
Tema 3.2.
Objetos de Datos
Definición de Objetos
2. Usando la notación JSON:
Ejemplo1:
let viaje={
origen:"Granada",
destino:"Londres",
dias:80,
precio:500,
mostrar:function(){
console.log(`${viaje.origen} a ${viaje.destino}`);
console.log(viaje.precio);
}
};
viaje.mostrar();

Cuando se necesita acceder desde un método de un objeto a las propiedades del mismo
se puede usar el objeto this, en lugar del propio objeto
Ejemplo anterior:
mostrar:function(){
console.log(`${this.origen} a ${this.destino}`);
console.log(this.precio);
}
};
Tema 3.2.
Objetos de Datos
Definición de Objetos
¿Qué aporta this? Seguridad.
Ejemplo: si se hubiera asignado viaje a otro objeto, ejemplo oferta, daría un error al
acceder a las propiedades del objeto this;
let viaje={
origen:"Granada",
destino:"Londres",
dias:80,
precio:500,
mostrar:function(){
console.log(`${viaje.origen} a ${viaje.destino}`);
console.log(viaje.precio);
}
};
let oferta=viaje;
viaje=null;
oferta.mostrar();
Tema 3.2.
Objetos de Datos
Definición de Objetos
Si en lugar de esos, se usase this:

let viaje={
origen:"Granada",
destino:"Londres",
dias:80,
precio:500,
mostrar:function(){
console.log(`${this.origen} a ${this.destino}`);
console.log(this.precio);
}
};
let oferta=viaje;
viaje=null;
oferta.mostrar();
Tema 3.2.
Objetos de Datos
Operaciones sobre Objetos
Constructores
Es un método especial que permite crear e inicializar de forma personalizada un objeto a
partir de una clase .
Sólo puede haber un constructor por clase. Se ejecuta inicializando las propiedades del
objeto cuando se utiliza el operador new.

class viaje {
origen="Granada";
destino="Londres";
dias=80;
precio=500;
constructor(or,des,di,pre){
this.origen=or;
this.destino=des;
this.dias=di;
this.precio=pre;
}
mostrar(){
console.log(`${this.origen} a ${this.destino}`);
console.log(this.precio);
}
};
let miViaje=new viaje("Barcelona","Ibiza",2,112);
miViaje.mostrar();
Tema 3.2.
Objetos de Datos
Operaciones sobre Objetos
Constructores (CONTINUACIÓN)
Si una clase hereda de otra, se puede ejecutar el constructor de la clase madre usando
super() class Miembro {
nombre="nombre apellido1 apellido2";
edad=30;
estado="activo";
constructor(n,ed,es){
this.nombre=n;
this.edad=ed;
this.estado=es;
}
cobrar(){
console.log(`El miembro ${this.nombre} ha cobrado`);
}
};
class Profesor extends Miembro{
nAlumnos=0;
constructor(n,ed,es,Nalu){
super(n,ed,es);
this.nAlumnos=Nalu;
}
cobrar(){
console.log(`El profesor ${this.nombre} ha cobrado`);
}
}
Tema 3.2.
Objetos de Datos
Operaciones sobre Objetos

let unMiembro=new Miembro("Juan",20,"activo");


unMiembro.cobrar();
let unProfesor=new Profesor("Pepe",60,"baja",25);
unProfesor.cobrar();
Tema 3.2.
Objetos de Datos
Operaciones sobre Objetos
Recorridos
Se puede usar for..in para recorrer las propiedades de un objeto
let unMiembro=new Miembro("Juan",20,"activo");
for (elemento in unMiembro){
console.log(elemento);
}

OJO!! Cuando itere, también lo hará con las propiedades que herede.
let unProfesor=new Profesor("Juan",20,"activo“,25);
for (elemento in unProfesor){
console.log(elemento);
}
Tema 3.2.
Objetos de Datos
JSON

JSON(JavaScript Object Notation) es un formato de representación basado en texto


(ficheros .json) que utiliza la misma sintaxis de objetos de JavaScritpt, por lo que se
utiliza con mucha frecuencia para el paso de informaciñon entre aplicaciones.
No sólo comparten sintaxis, sino que JavaScript incorpora un objeto llamado JSON, que
permite trabajar de forma muy eficiente con este tipo de cadenas.
Las cadenas de texto JSON deben ser convertidas previamente cuando se quiere acceder
a sus datos a través de JavaScript.
Importante de JSON:
• Sólo es posible definir propiedades, no métodos
• Las propiedades deben ir entre comillas dobles
Tema 3.2.
Objetos de Datos
JSON

• stringify convierte un objeto JavaScript a una cadena formato JSON:

let miviaje={
origen:"Granada",
destino:"Londres",
dias:80,
precio:500,
};
console.log(miviaje);
console.log(typeof(miviaje));
console.log(JSON.stringify(miviaje));
console.log(typeof(JSON.stringify(miviaje)));

• Parse devuelve el objeto equivalente en JavaScript desde una cadena JSON:


let cadena=new String('{"cancion":"Fuego","grupo":"Vetusta Morla"}');
console.log(cadena);
console.log(JSON.parse(cadena));
let objeto= JSON.parse(cadena);
for(elemento in objeto){
console.log(elemento);
}
Tema 3.2.
Objetos de Datos
PROTOTIPOS
Todos los objetos en JavaScript se crean a partir de unas plantillas especiales llamadas
prototipos. Exactamente, las propiedades y los métodos son definidos en la propiedad
prototype, que reside en la función constructora del objeto, no en la instancia del objeto.
function Viaje(origen,destino,dias,precio){
this.origen=origen;
this.destino=destino;
this.dias=dias;
this.precio=precio;
this.mostrar=function(){
console.log(`${this.origen} a ${this.destino}`);
console.log(this.precio);

};
};
let viaje1=new Viaje("Albacete","Murcia",3,100);
console.log(viaje1);
Tema 3.2.
Objetos de Datos
Recorrer Objetos

Recorrer Arrays de Objetos


Se puede definir un array de objetos, y recorrerlo con la instrucción for…in

var equipo = [
{nombre: "David Gómez", numero: "5"},
{nombre: "Sergio Callejas", numero: "4"},
{nombre: "Javier Rodríguez", numero: "3"},
{nombre: "Laura Fernández", numero: "2"},
{nombre: "Manuel Fernández", numero: "1"}
]

// recorremos por posición que ocupa en el array


for (let indice in equipo){
alert(equipo[indice].nombre);
}

NO: En ES6 existe una nueva forma, utlizada en arrays, de recorrer con for…of, que
en lugar de por índice, recorre directamente los objetos que contiene
Tema 3.2.
Objetos de Datos
Recorrer Objetos

Objetos anidados
Se pueden definir objetos, con propiedades de tipo objeto y métodos.
var factura = { Se puede acceder a las
empresa: {
nombre:"CAPALSA",
propiedades de los objetos:
direccion: "Poligono Campollano, C",
}, factura.cliente.nombre
cliente: {
nombre: "IES Leonardo da Vinci",
direccion: "C/ La Paz s/n",
},
elementos: [
{ descripcion: "Folios", cantidad: 100, precio: 5},
{ descripcion: "Toner", cantidad: 20, precio: 30},
],
calculaTotal(){
…….
}
}
Tema 3.2.
Objetos de Datos

ACTIVIDADES

1. Crear un objeto Cliente con el siguiente contenido:


Cliente: Nombre, Dirección, Teléfono, CIF

Crear los siguientes métodos:


• Constructor datos cliente
• Obtener datos Cliente

2. Crea una clase para modelar un objeto “teléfono móvil” que tenga al
menos estas propiedades: CPU, RAM, Almacenamiento, Ancho, Alto y
NumCámaras. Añade también un método llamado toString() que
muestre por pantalla la información del objeto creado. Crea 4 objetos
con diferentes números de parámetros en la creación y muestra en
pantalla la información de cada objeto.
Tema 3.2.
Objetos de Datos

ACTIVIDAD

3. Crear un objeto Factura con el siguiente contenido:


Empresa: Nombre, Dirección, Teléfono, CIF
Cliente: Nombre, Dirección, Teléfono, CIF
Elementos: Cantidad, Denominación, Precio
denominacion: Folios, Toner, Lapiceros
cantidad: 100, 20, 200
Precio: 5, 30, 0.5
Información: Base Imponible, IVA, total, importe IVA

Crear los métodos que permitan obtener la factura donde aparecerá:


• Datos de Empresa
• Datos de Cliente
• Una línea con cada artículo
• Importe factura
• IVA
• Total a pagar

También podría gustarte