什么是闭包,为什么要用它?
闭包就是能够读取其他函数内部变量的函数(函数里面套函数,内部函数访问外部函数变量),在本质上,闭包是将函数内部和函数外部连接起来的桥梁。使用闭包可以把变量长久存储在内存中。但是在实际开发中,我们更多的是避免闭包问题,比如在批量添加事件时。
JavaScript闭包好处是什么?为什么用到闭包?
闭包可以用在许多地方。它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中,不会在f1调用后被自动清除。
为什么使用闭包我举个例子
'use strict';
function num(){
//用var声明一个变量num1
var num1 = 15;
}
alert(num1);//num1 is not defined
我们在函数外是访问不了函数内的局部变量!正常的情况下我们是办不到的
假设我们有个需求需要访问函数内的变量,我们就可以用闭包实现
'use strict'; function num(){ //用var声明一个变量num1 var num1 = 15; return function(){ return num1; } } var num2 = num(); var num3 = num2(); alert(num3);//15 这样我们就可以取到局部变量了。这就是闭包!
匿名内部类,内部类,静态内部类的区别和联系?
非静态内部类,一般用作闭包使用,主要是传递一段代码以供回调使用。静态内部类和顶级类没有区别,只是作为一种名字空间来使用。内部类有可能复用,匿名内部类一般只使用一次。但是如果代码比较长,为了美观也可能将匿名内部类转换成内部类放到后面。

