jueves, 26 de marzo de 2009

Un poco de Magia para empezar el dia

Hola hoy les acerco un poco de sintaxis util en javascript:

Formas de crear un objeto:
EN JAVASCRIPT TODO ES UN OBJETO y como tal no deberia ser dificil crear uno nuevo, para esto tenemos varias opciones


var obj= new func();


nos permite crear un objeto a partir de una funcion y utilizando su prototipo.
Sin embargo la mejor manera de crear un obj es utilizando la notacion JSON veamos un ejemplo y lo explicamos despues


var obj = {
miembro1:123,
meiembro2:"hola",
metodo1: function(){ return "metodo1";},
metodo2: function(){ return "metodo2";},
"metodo3": function(){ return "metodo3";}
};
alert(obj.metodo3());


si se fijan bien la declaracion del objeto esta encerrada en llaves { }, y luego dentro se encuentran pares nombre valor separados por comas. ahora cada par nombre valor, nombre puede ser un identificador o un string y el valor puede ser cualquier valor (incluida una funcion) hasta otro objeto. Ahora hagamos un objeto complicas y juguemos con arrays

var objc={
nombre:"picanteverde",
posicion:{x:128,y:450},
telefonos:[431,561,443],
hijos:[
{nombre:'Alejandro',apellido:'Hernandez',edad:26},
{nombre:'Emanule',apellido:'Hernandez',edad:21}
],
hablar:function(){
alert(this.nombre);
}

};
objc.hablar();


se eniende como funciona? y lo util de JSON?? reemplaza xml?
lo dejo a su criterio
crear un objeto vacio

var o ={}; // objeto vacio
var a = []; // array vacia


Les gusto?

2 comentarios:

  1. y si quieres instanciar en una nueva variable como sería ya que:
    código:
    var a = {
    id: 'yeah',
    main: function()
    {
    alert(this.id);
    }
    };
    var b = new a;
    b.id = 'moco';
    b.main();


    esto no funciona y habría que hacerlo así:

    código:
    var a = function()
    {
    this.id = 'yeah';
    a.prototype.main = function()
    {
    alert(this.id);
    };
    };

    var b = new a();
    b.id = 'moco';
    b.main();

    ResponderEliminar
  2. Perdón quería ponerlo así:

    código:

    var a = {
    id: 'yeah',
    main: function()
    {
    alert(this.id);
    }
    };
    var b = new a();
    b.id = 'moco';
    b.main();

    aunque no funciona de las 2 formas :)

    ResponderEliminar