2011-03-28 3 views

Répondre

1

Il crée une variable 'obj' et la place dans le contexte actuel. Donc, par exemple, si c'est au niveau global, this serait la fenêtre DOM courante.

1

qui établit une copie locale de la première fonction de la classe actuelle que son être installée.

Il est utilisé dans jquery comme ALOT cela prend un sens différent lorsque vous être en utilisant les sélecteurs.

que j'ai un

function Person() { 
    this.name = "gnostus"; 
} 

et je dois accéder au nom de l'intérieur d'un sélecteur de jquery, où cela devient un élément HTML, je stocker mon objet dans une variable de copie et d'utilisation, obj.name à la place de this.name lorsque je suis à l'intérieur du contexte jquery.

+0

Je ne pense pas que jQuery soit le contexte de cette question. – Kzqai

0

Le ce mot-clé est utilisé pour faire référence au propriétaire de la fonction ou la variable du ce mot-clé est utilisé dans. Pour une visite de compréhension détaillée http://www.quirksmode.org/js/this.html

3

Il enregistre une référence à tout this était dans le contexte actuel, donc il peut être utilisé plus tard.

+2

Lorsque "plus tard" signifie de manière appropriée "en fermetures". – delnan

5

Il est juste en train de stocker la référence actuelle de l'objet this, à utiliser dans le futur. C'est utile, car dans JS, la valeur de this dépend d'un contexte.

1

Cela dépend de l'emplacement de cette instruction. Il affecte à la variable "obj" référence à l'objet courant. Par exemple, le code suivant ouvrira une fenêtre d'alerte et affichera [Objet Fenêtre]. En effet, nous vérifions la valeur de « cette » dans la zone du corps (pas à l'intérieur tout gestionnaire d'événements objets, etc.)

<html> 
    <head> 
    </head> 
    <body> 

    <script type="text/javascript"> 

     alert(this); 
    </script> 

    </body> 
</html> 
0

Le seul contexte, je peux penser à où cette sorte de code logique est de rendre le courant contexte (ceci) disponible dans une fermeture.

Ainsi, le code serait quelque chose comme:

var obj = this; 
setTimeout(function() { 
    obj.someMethod(); 
}, 1000); 

qui appellerait la méthode « someMethod » sur l'objet contexte actuel après 1 seconde passe.