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.
Dans le langage OO traditionnel, ce pointeur est déclaré dans une classe et représente l'objet lui-même. Dans JavaScript, cela représente le contexte actuel, c'est-à-dire la référence de l'appelant.
******* Cela pointe toujours vers le propriétaire de (Function Object)
Ceci et les objets globaux:
var a = 1; fonction foo () {var b = 2; console.log (this.a + b); // 3} foo (); // Le propriétaire de la fonction FOO est la fenêtre, et cela se réfère à l'objet de fenêtre dans la fonction globale (************ à moins que les nouvelles méthodes d'appel, appliquent, appliquent pour modifier la relation de référence de ceci)Ceci et objet:
var personne = {name: 'theo wong', genre: 'mâle', getName: function () {console.log (this.name); // le propriétaire de la fonction getName est un objet personne}}; personne.getName ();Ceci dans les fonctions imbriquées
var myObject = {func1: function () {console.log (this); // myObject var func2 = function () {console.log (this); // fenêtre var func3 = function () {console.log (this); //fenêtre }(); } (); }}; myObject.func1 (); // Dans les fonctions imbriquées, puisque le contexte d'exécution de la fonction imbriquée est la fenêtre, cela fait référence à un objet de fenêtre. En fait, il s'agit d'un bug dans ECMA-262-3, qui a été corrigé dans le dernier ECMA-262-5Ceci dans le traitement des événements:
var showValue = function () {alert (this.value); };1. <input id = "test" type = "text" />
Événement de liaison via dom.onclick, document.getElementById ('test'). OnClick = showValue;
À l'heure
2. Écrivez-le dans la balise HTML, <Input id = "test" type = "text" onclick = "showValue ();" />
Lorsque vous cliquez sur le DOM, nous ne pouvons pas obtenir le correct. Ceci à ce moment fait référence à l'objet Window. Parce qu'il n'y a aucune valeur définie dans l'objet Window, cette valeur ne peut pas être obtenue.
*** Pour le moment, il n'attribue pas la fonction ShowValue à l'ONClick de l'objet DOM, mais une référence. À l'heure actuelle, le propriétaire de la fonction fonction () est la fenêtre
document.getElementById ('test'). onclick = function () {showValue ();}Événement d'événement de liaison via AddEventListener / attachEvent
<input type = "text" id = "test" /> <script type = "text / javascript"> var dom = document.getElementById ('test'); id = 'fenêtre'; fonction test () {alert (this.id); } dom.addeventListener? dom.addeventListener ('cliquez', test, false): dom.attachevent ('onclick', test); // AddEventListener Test // attachEvent Window </ Script> // Cette façon de se lier la surveillance des événements, PiéSevent Ceci est un objet de fenêtre, et AddeventListener est un objet DOMCeci et construire:
fonction obj (name, age) {this.name = name; this.age = âge; this.fun = function () {alert (this.name); }; } var obj = new obj ('xht', 18); // Cela fait référence à ce nouvel objet, le nouveau change la relation de référence de ce obj.fun (); // xhtCeci et appelez
// Définissez une personne avec le nom jack var jack = {name: "jack", âge: 26} // définir une autre personne avec le nom abruzzi var abruzzi = {name: "abruzzi", âge: 26} // définir une fonction d'objet de fonction globale alertname () {return this.name; } // Définissez le contexte d'AlertName sur Jack, et ceci est à ce moment Alert (alertName.Call (Jack)); // Définit le contexte d'AlertName sur Abruzzi, et cela à l'heure actuelle est Abruzzi Alert (alertname.Call (abruzzi));Les citations sont un sujet relativement intéressant. Contrairement à d'autres langues, les références dans JavaScript pointent toujours vers l'objet final, pas la référence elle-même.
var obj = {}; // objet vide var ref = obj; // référence obj.name = "objecta"; alerte (nom réf.); // Ref Ajoutez ensuite l'attribut de nom obj = ["un", "deux", "trois"]; // OBJ pointe vers un autre objet (objet Array) alert (ref.name); // REF pointe également vers l'alerte d'objet d'origine (obj.length); // alerte 3 (ref.length);OBJ n'est qu'une référence à un objet anonyme, donc Ref ne le souligne pas.
La référence ne peut indiquer qu'un objet spécifique. Lorsque l'objet spécifique change, la référence ou la référence à l'objet d'origine, plutôt que l'objet modifié.
Ce qui précède est les informations sur ce pointeur et la référence dans JavaScript qui vous sont présentées 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!