/* function foo(){
var a = 10;
function bar(){ //这个函数叫做闭包
console.log(a);
}
} */
/* function foo(){
var a = 10;
return function(){
console.log(a);
};
}
//return出来的是一个函数表达式,可以在后面接小括号直接调用
foo()(); // 10 利用闭包可以在函数外部进行调用。 */
/* var foo = function(){
var a = 10;
return function(){
console.log(a);
};
}();
foo(); */
//闭包的好处,防止变量冲突
/*
var foo = function(){
var a = 10;
a++;
console.log(a);
};
foo();
foo();
foo();
var a = 20; */
//我想让a即累加,又是一个局部变量。闭包可以做到
/* var foo = function(){
var a = 10;
return function(){
a++;
console.log(a);
};
}();
foo();
foo();
foo();
var a = 20; */
//匿名函数自执行
// var foo = function(){}();
// function bar(){}();
/* function(){ //默认情况下,程序认为没有名字的函数是函数声明写法
console.log(123);
}(); */
/* (function(){ // 可以转成表达式
console.log(123);
})(); */
// +function(){ // 可以转成表达式
// console.log(123);
// }();
// ~function(){ // 可以转成表达式
// console.log(123);
// }();
// !function(){ // 可以转成表达式
// console.log(123);
// }();
本文深入探讨JavaScript中的闭包概念,包括其定义、如何创建及应用,以及如何利用闭包实现变量保护和状态维护。通过具体代码示例,展示闭包在实际编程中的作用,如防止变量冲突和实现变量累加。
157

被折叠的 条评论
为什么被折叠?



