Je vois ce code, que fait-il?Bizarre déclaration JavaScript, qu'est-ce que cela signifie?
var obj = this;
Je vois ce code, que fait-il?Bizarre déclaration JavaScript, qu'est-ce que cela signifie?
var obj = this;
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.
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.
Je ne pense pas que jQuery soit le contexte de cette question. – Kzqai
var obj = this;
Indique, assignez obj avec le parent de la portée actuelle.
J'ai d'abord lu ce post il y a quelques mois pour avoir un aperçu du mot clé 'this'.
http://justin.harmonize.fm/index.php/2009/09/an-introduction-to-javascripts-this/
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
Il enregistre une référence à tout this
était dans le contexte actuel, donc il peut être utilisé plus tard.
Lorsque "plus tard" signifie de manière appropriée "en fermetures". – delnan
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.
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>
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.
De quoi êtes-vous confus? [this] (http://www.quirksmode.org/js/this.html)? – Blorgbeard
nous aurons besoin de savoir dans quel contexte (dans quelle fonction était-ce?) – amosrivera
Je pense que plus intéressant serait: Pourquoi devriez-vous le faire? – Marnix