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