Objetos en Javascript 2/2

(Anterior: Objetos Javascript 1/2: crear objetos))

Si necesitamos que un objeto Javascript definido por nosotros mismos tenga métodos, tenemos varias opciones:

A. Podemos definir una función independiente que utilizaremos como método de nuestro objeto:


function datosUsuario(){
    return this.login + ' ' + this.fecha_registro;
}

1. Caso de objeto literal:


var usu = {
        login: "jcc",
        fecha_registro: "20070818",
        datosUsuario: datosUsuario
}

2. Caso de objeto definido con plantilla:


function Usuario(login, fecha_registro) {
    this.login= login;
    this.fecha_registro = fecha_registro;
    this.datosUsuario = datosUsuario;
}

B. Podemos definir una función propia que utilizaremos como método de nuestro objeto:
1. Caso de objeto literal:


var usu = {
    login: "jcc",
    fecha_registro : "20070818",
    datosUsuario   : function(){
        return this.login + ' '+ this.fecha_registro;
    }
}

2. Caso de objeto definido con plantilla:


function Usuario(login, fecha_registro) {
    this.login = login;
    this.fecha_registro = fecha_registro;
    this.datosUsuario = function(){
        return this.login + ' ' + this.fecha_registro;
    }
}

La principal diferencia entre los métodos A y B es que el B implementa de alguna manera lo que conocemos en programación orientada a objetos como encapsulación. Sólo un objeto del tipo que define el método puede utilizar la función datosUsuario().

obtener el resultado del metodo


//objeto.metodo()
var datos_de_usuario = usu0.datosUsuario();

NOTA: Hay un tercer caso:
C. Cuando tenemos un objeto ya definido, y por alguna razón necesitamos añadirle un nuevo método. Utilizamos la palabra reservada prototype igual que hacíamos para añadirle propiedades:


//Si el método se define a parte
Usuario.prototype.datosUsuario = datosUsuario;
//Si el método de define sólo par el objeto
Usuario.prototype.datosUsuario = function(){
    return this.login + ' ' + this.fecha_registro;
}

One Response to “Objetos en Javascript 2/2”

  1. 2012 Fashion ideas j…

    I’m astounded by people who want to ‘know’ the universe when it’s hard enough to find your way around Chinatown….

Leave a Response

You must be logged in to post a comment.