2009-06-23 6 views
0

Je sais qu'il y a une autre question liée à la copie d'objets dans JavaScript here, mais le code qu'ils fournissent ne fonctionne pas avec greasemonkey. D'après ce que j'ai pu tracer, le code de la réponse acceptée meurt/arrête à la ligne:Quelle fonction de copie d'objet JavaScript fonctionne avec greasemonkey?

var temp = new obj.constructor();

Est-il possible de voir ce qui a mal tourné?

Ce n'est pas vraiment nécessaire J'utilise la même fonction pour la copie d'objet, mais je voudrais quelque chose qui fonctionne. Connaissez-vous une fonction?

Répondre

0

Cela semble fonctionner:

var a = { 
    yo: 'hello', 
    do: function() {alert(this.yo + ' world');} 
}; 

var cloneStructor = function() {}; 
cloneStructor.prototype = a; 

var b = new cloneStructor(); 
a.yo = 'goodbye'; 
b.yo = 'what\'s up'; 

a.do(); 
b.do(); 
+0

sera pas juste être une référence et non une copie? – Geo

+0

L'exemple que j'ai fourni utilise le mot-clé 'new' et semble fonctionner - a et b se retrouvent avec des propriétés différentes. Une autre approche que j'ai trouvée utilise JSON.eval (JSON.stringify (cloneMe)). Cela pourrait valoir la peine d'essayer. Sinon, vous pouvez parcourir toutes les propriétés manuellement et reconstruire les choses. – steamer25

Questions connexes