Ce
Il s'agit d'un mot-clé dans JavaScript. La valeur de cela changera en fonction de l'utilisation de la fonction. Mais il y a toujours un principe, c'est-à-dire, cela fait référence à l'objet qui appelle la fonction.
1. Définition
1. Il s'agit d'un objet spécial (ou de cette référence) à l'intérieur de la fonction - il fait référence à l'objet Environment sur lequel la fonction est exécutée.
2. Cette référence est une variable en lecture seule qui peut être utilisée à tout moment dans le code JavaScript. Cette référence de référence (pointe vers) est un objet qui a la caractéristique qui modifie automatiquement son objet de référence en fonction du contexte de code. Ses règles de citation sont les suivantes:
• Dans le code le plus extérieur, cette référence fait référence à un objet global.
• Dans une fonction, cette référence varie selon la façon dont la fonction est appelée. comme suit
1) L'appel du constructeur - Cette référence fait référence à l'objet généré
2) Call de méthode - Cette référence fait référence à l'objet récepteur
3) Appliquer ou appeler - Cette référence fait référence à un objet spécifié avec les paramètres de l'application ou de l'appel
4) Autres façons d'appeler - Cette référence fait référence à l'objet global
2. Sur la base des informations en ligne ci-dessus et pertinentes, l'état d'utilisation de cet objet (cité) est résumé comme suit:
JavaScript est un langage dynamique, et ce n'est que lorsque ce mot-clé est exécuté peut être déterminé. Cela pointe donc toujours vers l'appelant, c'est-à-dire une référence à "l'objet d'appel". Pour le dire simplement, quel objet la méthode appelée appartient, cela pointe vers cet objet. Selon la méthode d'appel de fonction, cela peut pointer vers un objet global, l'objet actuel ou tout autre objet.
1. Les appels de fonction globale, cela dans la fonction globale pointera vers la fenêtre globale des objets. (Mode d'appel de fonction)
// Code List 1 <Script Type = "Text / JavaScript"> var Message = "This in Window"; // Cette phrase est écrite en dehors de la fonction et à l'intérieur de la fonction Fonction Func () {if (this == fenêtre) {alert ("this == fenêtre"); alerte (message); this.methoda = function () {alert ("je suis une fonction");}}}} func (); // Si la méthode FUNC n'est pas appelée, les attributs ou les méthodes définis ne seront pas récupérés par Methoda (); </cript>Le résultat de l'appel de func () est cette fenêtre ==, cette fenêtre
Le résultat de l'appel à Methoda () est que je suis une fonction
2. Call du constructeur, c'est-à-dire, instanciant un objet utilisant un nouveau, cela pointera vers l'objet généré via le constructeur. (Mode d'appel constructeur)
Listing de code 2
<script type = "text / javascript"> func func () {if (this == window) {alert ("this == fenêtre");} else {alert ("this! = window");} this.fielda = "I'm a Field"; alert (this);} var obj = new func (); alert (obj.field); // Cela pointe vers l'objet obj </cript>3. Appelant la méthode de l'objet, cela pointe vers l'objet actuel. Toute fonction, tant que la fonction est utilisée ou attribuée comme méthode d'un objet, cette fonction est une référence à l'objet lui-même. Il peut également être compris que cela est écrit dans un objet normal, ce qui pointe vers l'objet lui-même. (Mode d'appel de méthode)
(Définition de la méthode: une fonction de propriété d'objet est appelée méthode)
// Code List 3 <Script Type = "Text / JavaScript"> var Obj = {x: 3, DOIT: function () {if (this == window) {alert ("this == fenêtre");} else {alert ("méthode est appelé:" + this.x);}}}; obj.doin (); // Cela pointe vers l'objet obj </cript>4. Appelez ceci par la méthode Appliquer ou appeler, cela pointe vers l'objet passé.
La méthode d'application ou d'appel peut être utilisée pour appeler une méthode au lieu d'un autre objet. La méthode d'appel modifie le contexte de l'objet d'une fonction du contexte initial à un nouvel objet spécifié par ThisOBJ. Si ce paramètre ce paramètre n'est pas fourni, l'objet global est utilisé comme thisObj. (Appliquer le mode d'appel)
// Code List 4 <Script Type = "Text / JavaScript"> var Obj = {x: 3, DOIT: function () {alert ("La méthode est appelée:" + this.x);}}; var obj2 = {x: 4}; obj.doiit (); // 3, cela pointe vers objobj.doiit.apply (obj2); // 4, cela pointe vers obj2obj.doiit.call (obj2); // 4, cela pointe vers obj2 </cript>5. Ceci dans la chaîne prototype - l'objet Prototype et ceci dans le constructeur pointe vers l'objet d'instance nouvellement créé. Utilisez la méthode d'extension du prototype pour obtenir une instance de l'objet source à l'aide de ceci, et les champs privés ne peuvent pas être obtenus via la chaîne prototype.
// Code List 5 <Script Type = "Text / JavaScript"> fonction func () {this.fielda = "Je suis un champ"; var privatefielda = "I'm a var";} func.prototype = {extendMethod: function (str) {alert (str + ":" + this.field); alert (privateFielda); // Une erreur s'est produite, le champ privé n'a pas pu être obtenu via la chaîne prototype. }}; var obj = new func (); obj.extendMethod ("from prototype"); // À cet objet pointant obj dans le constructeur et la chaîne prototype à l'heure actuelle, obj </cript>6. Ceci dans la fermeture - fermeture: la fonction écrite dans la fonction, cela pointe vers la fenêtre d'objet global.
6.1 fermetures dans un objet
// Code List 6 <Script Type = "Text / JavaScript"> var name = "La fenêtre"; var obj = {name: "mon objet", getNameFunc: function () {return function () {return this.name;}}}; alert (obj.getNameFunc () ()); // la fenêtre </cript>À l'heure actuelle, cela dans la fermeture pointe vers la fenêtre de l'objet global et ne peut obtenir que les propriétés de l'objet global. Alors, que dois-je faire si les propriétés à l'intérieur de l'objet (variables des fonctions externes) veulent accéder? Enregistrez simplement cet objet de la fonction externe dans une variable accessible par une fermeture. Regardez le code suivant:
// Code List 7 <Script Type = "Text / JavaScript"> var name = "La fenêtre"; var obj = {name: "mon objet", getNameFunc: function () {var that = this; return function () {return that.name;}}}; alert (obj.getNameFunc () ()); // mon objet </cript>Attribuez-le à la fonction externe à la variable, vous pouvez lire la variable de la fonction externe.
6.2 Qu'il se réfère directement à la fonction ou instanciant une fonction, dans la fonction de fermeture, il renvoie des points à la fenêtre.
// Code List 8 <Script Type = "Text / JavaScript"> Fonction a () {alert (this == fenêtre); var that = this; var func = function () {alert (this == fenêtre); alert (that);}; return func;} var b = a (); b (); // true, true, [fenêtre d'objet] var c = new a (); c (); // false, true, [objet objet] </cript>7. La fonction utilise la méthode bind () pour lier un objet, et cela pointera vers la valeur transmise à la fonction bind ().
// Code List 9 <Script Type = "Text / JavaScript"> Window.Color = "Red"; var obj = {Color: "Blue"}; Function SayColor () {alert (this.color);} var objsayColor = SayColor.bind (obj); objsayColor (); // bleu </cript>8. Le segment de script intégré dans l'élément HTML, cela pointe vers l'élément lui-même
// Liste de code 10 <div onClick = "test (this)" id = "div"> cliquez moi </ div> <script type = "text / javascript"> function test (obj) {alert (obj); // [objet htmLivellement]} </dcript>9. Écrivez dans Script Tag: Cela fait référence à la fenêtre globale de l'objet. C'est la même chose que la variable globale appelée par la fonction globale au premier point.
Ce qui précède est une citation de ceci dans JavaScript qui vous a présenté par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!