//闭包的概念:局部变量闭包成为当前作用域的私有变量
//优点:可以把局部变量拿到外部使用
//缺点:闭包变量会存进内存,大量使用闭包会导致内存泄露
//闭包函数
function fun1() {
var num = 1;//闭包变量
return function () {
num += 1;
console.log(num);
}
}
var fun2 = fun1();
fun2();//2
fun2();//3
//例题
var arr=[]
for (var i = 0; i < 10; i++) {
var push=(function(n) {
var num = n;
return function () {
console.log(num);
}
})(i);
arr.push(push);
}
// console.log(arr[0]);
arr[0]();
arr[1]();
arr[2]();
arr[3]();
//例题2
for (var i = 0; i < 10; i++) {
(function (n) {
setTimeout(function () {
console.log(n);
},0)
})(i)
}
// timerFun();
//例题3
var name = "the window";
var object = {
name: "the object",
getFun: function () {
// var that = this;
return function () {
return this.name;//that.name
}
}
}
console.log(object.getFun()());//the window/the object
2021-2-19 js中的闭包问题
最新推荐文章于 2021-04-25 23:33:08 发布