JavaScript
Avanzado
new Number(n)
Devuelve un objeto que representa el numero n pasado como argumento
var numero = new Number(15);
Obtenemos el valor, mediante la funcion valueOf() definida en el objeto
console.log(numero.valueOf());
new Boolean(n)
Devuelve un objeto que representa el booleano n pasado como argumento
var verdadero = new Boolean(true);
Obtenemos el valor, mediante la funcion valueOf() definida en el objeto
console.log(verdadero.valueOf());
new String(cadena)
Devuelve un objeto que representa la cadena
var cadena = new String("Hola Mundo");
Obtenemos el valor, mediante la funcion valueOf() definida en el objeto
console.log(cadena.valueOf());
new Array(a, b, ...)
Devuelve un objeto que representa un array con los elementos a, b, etc
var primeros = new Array(1,2,3,4,5);
Obtenemos el valor mediante la funcion valueOf() definida en el objeto
console.log(array.valueOf());
console.log(array);
new Object(a)
Devuelve un objeto que representa el valor a pasado como argumento
var objetoVerdadero = new Object(true);Obtenemos el valor desde la variable o bien mediante la funcion valueOf() definida en el objeto
console.log(objetoVerdadero.valueOf());
new Function(a,b, ..., body)
Devuelve un objeto que representa la función pasada como el argumento body
var suma = new Function(“a”, “b”, “return a + b”);Como toda función, la podemos evaluar utilizando los paracentesis y pasando dentro los argumentos
console.log(suma(3,8));
new Date(a)
Devuelve un objeto que representa la fecha a pasada como argumento
var unDia = new Date(“05/19/2015”);Obtenemos el valor mediante la funcion valueOf() definida en el objeto
console.log(unDia.valueOf());
Array Asociativos
Aquel en el cada elemento no está asociado a su posición numérica dentro del array, sino que está asociado a otro valor especifico.
var posiciones = new Array();
posiciones[“primero”] = “Pepe”;
posiciones[“segundo”] = “Luis”;
posiciones[“tercero”] = “Juan”;
Podemos tratar el array asociativo como el objeto que es y asignar el valor mediante el punto
posiciones.cuarto = “Jose”;Array Asociativos
Podemos acceder a los valores del array asociativo como si se tratase de un array común y corriente, solo hay que conocer el nombre del indice
console.log(posiciones[“primero”]);
console.log(posiciones[“tercero”]);
O bien considerándolo como el objeto que es y acceder al valor a través del punto
console.log(posiciones.cuarto);Métodos
Cuando un objeto tiene definida una función como propiedad, esta es considerada un método del objeto
var numero = new Number(15);
var cadena = new String("hola, como estas?");
number.valueOf();
cadena.split(",");Métodos
Supongamos que creamos un objeto como sigue:
var tutor = new Object();
tutor.nombre = “Neri”;
tutor.apellido = “Güidi”;
Luego creamos la función siguiente:
function dameNombreCompleto() {
return tutor.nombre + “ ” + tutor.apellido;
}
Métodos
Podemos asignar el valor de evaluar la función como sigue:
tutor.nombreCompleto = dameNombreCompleto();Sin embargo no seria de utilidad, en cambio, seria útil si la definimos sin evaluar
tutor.nombreCompleto = dameNombreCompleto;Métodos
También podría definir la función como una función anónima
tutor.nombreCompleto = function() {
return tutor.nombre + “ ” + tutor.apellido;
}
Al hacerlo de esta manera, dameNombreCompleto solo tendria utilidad en este objeto
call() vs apply()
Permiten ejecutar una función como se fuera un método de otro objeto.
unaFuncion.call(unObjeto, arg1, arg2, …);
unaFuncion.apply(unObjeto, [arg1, arg2, …]);
La principal diferencia entre ellos es que en caso del método call(), los argumentos son pasados de forma individual, es decir, uno al lado del otro, mientras que en el caso de apply(), van incluidos dentro de un array.
Clases
Modelo sobre el cual se construyen objetos
function Persona(nombre,apellido) {
this.nombre = nombre;
this.apellido = apellido;
}
Puedo construir una clase mediante una funcion
Puedo crear una instancia de esta clase evaluando la función
var tutor = new Persona(“Neri”, “Güidi”);Clases
Podemos agregar métodos a nuestra clase mediante una propiedad llamada prototype
Persona.prototype.nombreCompleto = function() {
return this.nombre + “ ” + this.apellido;
}
Luego podemos instanciar una persona y hacer uso del metodo
var tutor = new Persona(“Neri”, “Güidi”);
tutor.nombreCompleto();
Excepciones
Podemos controlarlo mediante el uso de las palabras reservadas: try, catch y finally
try {
…
} catch(exception) {
…
} finally {
…
}
JavaScript - Avanzado
By Neri Guidi
JavaScript - Avanzado
- 497