Heim >Web-Frontend >js-Tutorial >Ausführliche Einführung in Schließungsthemen
Bei Vorstellungsgesprächen stoße ich oft auf Fragen zu Schließungen
<span style="font-size: 15px; font-family: 宋体"><code class="lang-javascript"><span class="hljs-keyword">var name = <span class="hljs-string">"The Window"; <span class="hljs-keyword">var object = { name : <span class="hljs-string">"My Object", getNameFunc : <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(){ <span class="hljs-keyword">return <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(){ <span class="hljs-keyword">return <span class="hljs-keyword">this.name; }; }, getName:<span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(){ alert(<span class="hljs-keyword">this.name); } }; alert(object.getNameFunc()()); <span class="hljs-comment">//The Window object.getName(); <span class="hljs-comment">//My Object<br/></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></span>
Lösung für das Speicherleckproblem der js-Funktionsschließungsmethode
function Cars(){ this.name = "Benz"; this.color = ["white","black"]; } Cars.prototype.sayColor = function(){ var outer = this.color; //保存一个副本到变量中
<span style="font-size: 15px"> return function(){ </span><br/><span style="font-size: 15px">return outer//应用这个副本</span>
};
outer = null; //释放内存
<span style="font-size: 15px">};<br/> var instance = new Cars(); <br/>console.log(instance.sayColor()())</span>
Das obige ist der detaillierte Inhalt vonAusführliche Einführung in Schließungsthemen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!