Quiero hacer la siguiente

var my_json = {
    a : 'lemon',
    b : 1
}

function obj(json){
    this.a = 'apple';
    this.b = 0;
    this.c = 'other default';
}

después de la asignación de

var instance = obj(my_json)

Quiero llegar

instance.a == 'lemon'
InformationsquelleAutor Dan | 2011-04-14

2 Comentarios

  1. 7
    for(var key in json) {
        if(json.hasOwnProperty(key)) {
            this[key] = json[key];
        }
    }

    La if bloque es opcional si usted sabe con certeza que nada es, todo va a extender Object.prototype (que es una cosa mala de todos modos).

    • podría usted por favor, explique su última frase mejor?
    • Si usted extender Object.prototype, iterando sobre los objetos se incluyen las propiedades agregó el prototipo que es más probable que no lo que usted desea cuando se itera sobre un objeto proveniente de JSON. Si una propiedad proviene del prototipo, el hasOwnProperty de verificación fallará por lo que evitará la rotura como sólo las propiedades que están en realidad en el pasado, los objetos se copian a su objeto.
  2. 1

    Si quieres predeterminados de cómo se acerca;

    function obj(json){
      var defaults = {
        a: 'apple',
        b: 0,
        c: 'other default'
      }
    
      for (var k in json)
        if (json.hasOwnProperty(k))
          defaults[k] = json[k];
    
      return defaults
    }

Dejar respuesta

Please enter your comment!
Please enter your name here