#程序员每日一题#【每天一道笔试题】 什么是闭包(closure),为什么要用它?

执行say667()后,say667()闭包内部变量会存在,而闭包内部函数的内部变量不会存在.使得Javascript的垃圾回收机制GC不会收回say667()所占用的资源,因为say667()的内部函数的执行需要依赖say667()中的变量。这是对闭包作用的非常直白的描述.

 function say667() {
    // Local variable that ends up within closure
    var num = 666;
    var sayAlert = function() { alert(num); }
    num++;
    return sayAlert;
}
 var sayAlert = say667();
 sayAlert()//执行结果应该弹出的667


慕课网前端学习小组
浏览 2301回答 1
1回答

慕粉3163795

好的,学习了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript