1

Travaillant en javascipt, j'initialise un objet multi-dimensionnel (lui-même imbriqué dans plusieurs objets). Cependant, en regardant les propriétés de l'objet enfant, il a des propriétés inattendues, la première étant "fromBase64". Cela se produit lors de l'utilisation du navigateur IE6 et du framework TIBCO GI, mais l'objet est indépendant de toute classe spécifique de GI.Objet multidimensionnel Javascript aux propriétés inattendues

Je ne sais pas d'où vient cette propriété. Quelqu'un pourrait-il jeter quelque lumière?

orderProfiles.product = function(productParameters){ 
    this.property1 = productParameters['property1']; 
    this.property2 = productParameters['property2']; 
    ... 
    this.childrenProducts = new Object(); 
}; 

Puis

for (child in window.selectedProducts[contact][product]['childrenProducts']){ 
    alert("child = " + child); 
} 

Donne

child = fromBase64 
child = toBase64 
child = constrainLength 
child = endsWith 
child = urlTo 
child = toAbsolute 
child = doTruncate 
child = escapeHTML 
child = doReplace 
child = trim 
child = fromBase64 

Répondre

0

Ceux tous semblent être des méthodes qui prototype.js a des objets étendus avec. Essayez de supprimer prototype.js et prenez-le à partir de là.

2

Utilisez hasOwnProperty pour différencier entre vos propres propriétés et celles que vous avez hérité du constructeur de l'objet (qui peut avoir été étendue):

var childrenProd = window.selectedProducts[contact][product].childrenProducts; 
for (child in childrenProd){ 
    if (childrenProd.hasOwnProperty(child)){ 
    alert("child = " + child); 
    } 
} 
+0

ajouter également 'var child' si l'enfant ne soit pas préalablement déclaré –

Questions connexes