for(var key in json){if(json.hasOwnProperty(key)){this[key]= json[key];}}
La if bloc est en option si vous savez certainement que rien de tout va étendre Object.prototype (ce qui est une mauvaise chose de toute façon).
pourriez-vous expliquer votre dernière phrase de mieux? Si vous étendez Object.prototype, itérer sur les objets à inclure les propriétés que vous avez ajouté le prototype qui n'est probablement pas ce que vous voulez lors de l'itération sur un objet venant de JSON. Si une propriété est livré avec le prototype, le hasOwnProperty validation échouera si elle permettra d'éviter la rupture que seules les propriétés qui sont réellement dans le passé des objets seront copiés sur votre objet.
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
}
La
if
bloc est en option si vous savez certainement que rien de tout va étendreObject.prototype
(ce qui est une mauvaise chose de toute façon).Si vous étendez
Object.prototype
, itérer sur les objets à inclure les propriétés que vous avez ajouté le prototype qui n'est probablement pas ce que vous voulez lors de l'itération sur un objet venant de JSON. Si une propriété est livré avec le prototype, lehasOwnProperty
validation échouera si elle permettra d'éviter la rupture que seules les propriétés qui sont réellement dans le passé des objets seront copiés sur votre objet.OriginalL'auteur ThiefMaster
Si vous voulez par défaut comment sur;
OriginalL'auteur Alex K.