Maison >interface Web >js tutoriel >La compréhension de cela en js

La compréhension de cela en js

一个新手
一个新手original
2017-10-11 09:48:041761parcourir

Avant-propos : Cet objet ne fonctionnera que lorsque le mode strict n'est pas utilisé. L'objet this est lié à l'environnement d'exécution de la fonction au moment de l'exécution.

Cas 1 : Dans une fonction globale, this est égal à window. Seulement lorsque la fonction est appelée comme méthode d'un objet, this sera égal à cet objet. Si vous ne savez toujours pas ce qu'est une fonction globale, veuillez vous référer ici et cliquer pour ouvrir le lien

Cas 2 : L'environnement d'exécution de la fonction anonyme est global, cela indique généralement à la fenêtre

Par exemple

var name = "window";

var object = {
   name: "Object name",
   getNameFunc: function () {
        return function (){
            return this.name;
        };
    }
};
console.log(object.getNameFunc() ()); // 输出window

Cas 3 : Enregistrez cet objet dans la portée externe dans une variable accessible par la fermeture, afin que cela peut pointer vers cet objet dans la portée

Par exemple

var name = "window";

var object = {
   name: "Object name",
   getNameFunc: function () {
       var that = this;
        return function (){
            return that.name;
        };
    }
};
console.log(object.getNameFunc() ());  // 输出Object name

Cas 4 : Attribuez d'abord la fonction, puis exécutez-la, la valeur de ceci ne peut pas être maintenu

Par exemple

var name = "window";

var object = {
    name: "Object name",
    getName: function () {
        return this.name;
    }
};
console.log((object.getName = object.getName) ());  // 输出window

Cas 5 : Si l'environnement d'exécution de la fonction est modifié via un appel ou une application, ceci pointera vers d'autres objets

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn