javascript objetos

24
JavaScript Objetos

Upload: daniel-g

Post on 12-Jun-2015

240 views

Category:

Internet


9 download

DESCRIPTION

Javascript Objects

TRANSCRIPT

Page 1: Javascript objetos

JavaScript

Objetos

Page 2: Javascript objetos

Objetos

Un objeto es una colección de nombre/valor.

Es un tipo de datos compuesto.

Difiere de los tipos de datos primitivos: String, number, boolean.

Junto con Arrays constituyen los 2 tipos de datos más importantes en JavaScript.

Page 3: Javascript objetos

Objetos

Tipo de dato compuesto que almacena múltiples valores en una única unidad y que nos permite accederla por nombre para extraer o almacenar datos.

Page 4: Javascript objetos

Crear Objetos

• Literalmente: lista de pares ‘nombre’:’valor’ separados por comas y delimitados por llaves {}

– var empty = {};

– var coordenada = { x:0, y:0};

– var circulo = { x:punto.x, y:punto.y, radio:2 };

– var profesor = {‘nombre’ : ‘Daniel’,‘cursos’: arreglo_cursos,‘email’: ‘[email protected]

};

Page 5: Javascript objetos

Crear Objetos• Operador new

El operador new crea tipo de objetos especiales.

var fecha = new Date();

var arreglo = new Array();

var regexp = new RegExp(“javascript”,”i”);

var rectan = new Rectangulo(20,40);

Page 6: Javascript objetos

Propiedades

• Para acceder a los pares de ‘nombre’:’valor’ de los Objetos se utiliza el operador punto .

objeto_nombre.valor_nombre;objeto_nombre = propiedad

Page 7: Javascript objetos

Propiedades

var libro = {};

libro.titulo = ‘El Quijote de La Mancha’;

libro.autor = ‘Miguel de Cervantes Saavedra’;

libro.paginas = 1096;

libro.capitulos = new Array();

libro.capitulos[0] = new Object();

libro.capitulos[0].titulo = ‘Que trata de la….’;

libro.capitulos[0].paginas = 5;

Page 8: Javascript objetos

Propiedades

• var para declarar el objeto

• Propiedades solo con el nombre

• new propiedades objetos

• var no se usa en las propiedades

• Se pueden agregar nuevas propiedades en todo

momento.

• Se pueden eliminar propiedades en todo momento.

Page 9: Javascript objetos

Propiedades

• Enumerar/listar propiedades de un objeto:

function DisplayPropertiesName(obj) {for (var name in obj) {

console.log(‘obj.’ + name);}

}

Page 10: Javascript objetos

Propiedades<!DOCTYPE html>

<html>

<head>

<meta charset= “utf-8”</meta>

<title>Objetos</title>

<script language="javascript">

var libro = {};

libro.titulo = 'El Quijote de La Mancha';

libro.autor = 'Miguel de Cervantes Saavedra';

libro.paginas = 1096;

libro.capitulos = new Array();

libro.capitulos[0] = new Object();

libro.capitulos[0].titulo = 'Que trata de la...';

libro.capitulos[0].paginas = 5;

function DisplayPropertiesName() {

for (var name in libro) {

console.log('obj.' + name);

}

}

</script>

</head>

<body onload="DisplayPropertiesName()">

</body>

</html>

Page 11: Javascript objetos

Propiedades

• Chequear si existe una propiedad:

if (“x” in objeto) …

objeto.x !== undefined

Nota: “x” literal x

Page 12: Javascript objetos

Propiedades

• Eliminar una propiedad de un objeto:

delete libro.paginas;

Page 13: Javascript objetos

Objetos: Arreglos Asociativos

En lenguales fuertemente tipados (C/C++, Java),los objetos tienen un número fijo de propiedades cuyos nombres son definidoscuando se programa.

profesor.nombre;profesor.curso;

Nombre y curso deben estar definidas en el programa literalmente.

Page 14: Javascript objetos

Objetos: Arreglos Asociativos

• Para acceder a las propiedades de un objeto se utiliza el operador punto:– objeto.propiedad // identificador

• O puedo utilizarse el operador [] como en arreglos:– objeto[‘propiedad’] // string

Ambas expresiones son equivalentes.

Page 15: Javascript objetos

Objetos: Arreglos Asociativos

• El operador “.” accede a una propiedad del objeto cuyo nombre es un identificador.

• Los identificadores son literales tipeados en un programa JS.

• No son variables de un tipo de datos en JS.• Los literales deben conocerse de antemano.

Page 16: Javascript objetos

Objetos: Arreglos Asociativos

• El operador “[]” accede a una propiedad de un arreglo que esta expresada como una cadena.

• La cadena es una variable tipo string. Un tipo de datos en JS.

• Puede manipularse perfectamente en un programa JS.

• Puede cambiarse dinámicamente en la ejecución del programa JS:

Page 17: Javascript objetos

Objetos: Arreglos Asociativos

JavaScript no es fuertemente tipado y por lo tanto no se requiere que las propiedades de un objeto estén definidas de antemano, uno puede crearlas/definirlas en runtime, o sea,

mientras se ejecuta el script.

Cómo? Utilizando la notación de Objetos como Arreglos Asociativos

Page 18: Javascript objetos

Objetos: Arreglos Asociativos

Conclusión:

puedo definir dinámicamente propiedades para los objetos si utilizo el operador “[]”.

Page 19: Javascript objetos

Objetos: Arreglos Asociativosvar nombre_accion = leer_nombre_accion();

var cant_accion = leer_cant_accion();

mis_acciones[nombre_accion] = cant_accion;

var valores = 0;

for (accion in mis_acciones) {

valores += valor_accion(accion) * mis_acciones[accion];

}

Page 20: Javascript objetos

Class: Object

• Los objetos JS heredan de la Clase Object.

• RegExp y Date definen sus propios métodos y propiedades.

• Universalmente, todos soportan las propiedades y métodos de Object.

Page 21: Javascript objetos

Constructor

• Propiedad• Todo objeto JS tiene un constructor.• Función que crea al objeto.

var d = new Date();d.constructor == Date; // true

Page 22: Javascript objetos

Constructor

• La propiedad constructor de un objeto ayuda a determinar el tipo de objeto.

if (( typeof o == “object”) && ( o.constructor == Date))

if (( typeof o == “object”) && ( o instaceof Date))

Page 23: Javascript objetos

Clases, Constructores, Prototipos

• Definiendo Clases propias:

function Rectangulo(w, h) {

this.ancho = w;

this.alto = h;

}

rect1 = new Rectangulo(10,20); // rect1 = {width:10, height:20}

- rect1 es un objeto de clase Rectangulo.- function Rectangulo es el constructor .- Las funciones constructor no devuelven un valor.

Page 24: Javascript objetos

Clases, Constructores, Prototipos

• this hace referencia al objeto en sí mismo, al objeto actual.