面试的时候经常碰到关于闭包的问题
<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>
解决js函数闭包内存泄露问题的办法
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>
以上就是关于闭包问题的详细介绍的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号