Maison >interface Web >js tutoriel >Explication détaillée de la fermeture javascript var that=this

Explication détaillée de la fermeture javascript var that=this

小云云
小云云original
2018-02-22 15:57:333093parcourir

Aperçu rapide

var f1  = function(){
    var a = 999;
    nAdd = function(){n+=1}    //没有var,nAdd是全局变量
    f2 = function(){
        alert(a)
    }
    return f2;
}
var result = f1();
result();    //999
nAdd();        //相当于一个setter,可以在函数外部操作函数内部变量的值
result();    //1000,f2()被执行了2次

Le concept de fermeture

Fonction au sein d'une fonction

Le but de la fermeture

Vous pouvez lire le contenu à l'intérieur la fonction Variables
garde les variables de la fonction parent toujours en mémoire
Remarque : Si vous souhaitez conserver les valeurs des variables de la fonction parent inchangées, vous devez utiliser la fonction parent comme objet

//父函数作对象
var name = 'The Window';
var object = {
    name : 'The Object',
    getName : function(){
        return function(){
            return this.name
        }
    }
}

alert(object.getName()())    //The Window

var that = this;

var _name = 'The Window';
var object = {
    _name : 'The Object',    //_name 下划线表示私有变量
    getName : function(){
        var that = this;
        return function(){
            return that._name;
        }
    }
}

alert(object.getName()())    //The Object

that=this / _this=this


Apprendre la fermeture Javascript (Closure) Ruan Yifeng)

Recommandations associées :

Introduction détaillée aux fermetures JavaScript

Application simple de la fermeture JavaScript exemples

Qu'est-ce que la fermeture de JavaScript ? Comment utiliser la fermeture javascript ?

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