2010-06-26 5 views
1

Ok, je me demande s'il est possible de transférer la référence de l'objet aux fonctions. Si vous ne comprenez pas ce que Im essayant de dire, cela pourrait aider:Accéder à la référence d'objet javascript à partir de la méthode membre

//so i declare the variable `Editor` 
var Editor = new (function(e, d){ 
    this.edit = e; 
    this.dyna = d; 
    this.old = ""; //and set these variables inside the object 

    this.update = function() { 
     var ta = $(Editor.edit)[0].value, dy = $(Editor.dyna)[0].contentDocument; 
     //what i want is to be able to refer to the variables (ie. "edit") without using "Editor." 
     if (Editor.old !== ta) { 
      $(dy).text(ta); 
      Editor.old = ta; 
     } 
     window.setTimeout(Editor.update, 150); 
    } 

    return this; 
})("editor","dynamic"); 

Donc, pour la fonction de mise à jour, je veux être capable de faire quelque chose comme:

this.update = function() { 
    var ta = $(edit)[0].value, dy = $(dyna)[0].contentDocument; 
    if (old !== ta) { 
     $(dy).text(ta); 
     old = ta; 
    } 
    window.setTimeout(update, 150); 
} 

Et il me donne les variables (edit, dyna, old) de l'objet Editor. Merci.

Répondre

1

this Dans votre fonction, vous faites référence à l'objet de la fonction de base anonyme que vous avez créée.

Utilisez this.propertyName pour accéder à ses propriétés.

var ta = $(this.edit)[0].value, dy = $(this.dyna)[0].contentDocument; 
+0

Merci. Ce n'était pas très intelligent de ma part, mais j'essayais de régler un problème beaucoup plus important et j'étais confus. De retour sur la bonne voie – tcooc

2

Pourquoi n'êtes-vous pas simplement en utilisant le préfixe this. Donc this.edit[0].value? Peut-être qu'il me manque quelque chose car il est en retard ici ...

Questions connexes