Kurzer Überblick
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次
Funktion innerhalb einer Funktion
Sie können den Inhalt darin lesen Die Funktionsvariablen
behalten die Variablen der übergeordneten Funktion immer im Speicher
Hinweis: Wenn Sie die Variablenwerte der übergeordneten Funktion unverändert lassen möchten, müssen Sie die übergeordnete Funktion als Objekt verwenden
//父函数作对象 var name = 'The Window'; var object = { name : 'The Object', getName : function(){ return function(){ return this.name } } } alert(object.getName()()) //The Window
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
Lernen Sie den Javascript-Verschluss (Closure) (Ruan Yifeng)
Verwandte Empfehlungen:
Detaillierte Einführung in JavaScript-Verschlüsse
Einfache Anwendung des JavaScript-Verschlusses Beispiele
Was ist der Abschluss von JavaScript? Wie verwende ich den Javascript-Abschluss?
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Javascript-Abschlusses var that=this. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!