03#闭包和立即执行函数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>IndexABC</title>
</head>
<body>
<div id="el"> EL </div>
<button attr="selfdef" id="change"> `Number` </button>
</body>
<script>
// 内存常驻
// let mkadd = (function mkadd(){
// let i=0;
// return function(){
// console.log(++i)
// }
// })();
// mkadd()
// mkadd()
// mkadd()
// (function(){}()); 对
// function(){}(); 错误
// function a(){}(); 错误
// 闭包能缓存
let all = [];
let url = "http://aocn.cnblogs.com/"
for(let i = 0; i<10; i++){
(function(idx){
all.push(url+i);
})(i)
}
// console.log( all );
// 自执行函数和立即执行函数
// 立即执行函数的 【module 模式】
let counter = (function(){
let i = 0;
let m;
m = {
inc: function(){
return i=i+1;
},
dec: function(){
return i=i-1;
},
get: function(){
return i;
},
set: function(num){
i = num;
return {current: i}
}
}
return m;
})();
console.log(
counter.get(),
counter.inc(),
counter.set(5),
counter.dec()
);
</script>
</html>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>IndexABC</title></head><body><div id="el"> EL </div><button attr="selfdef" id="change"> `Number` </button>
</body><script>
// 内存
// let mkadd = (function mkadd(){// let i=0;
// return function(){// console.log(++i)// }// })();
// mkadd()// mkadd()// mkadd()
// (function(){}()); 对// function(){}(); 错误// function a(){}(); 错误
// 闭包能缓存let all = [];let url = "http://aocn.cnblogs.com/"for(let i = 0; i<10; i++){
(function(idx){
all.push(url+i);
})(i)
}// console.log( all );
// 自执行函数和立即执行函数
// 立即执行函数的 【module 模式】let counter = (function(){
let i = 0;let m;m = {inc: function(){return i=i+1;},dec: function(){return i=i-1;},get: function(){return i;},set: function(num){i = num;return {current: i}}}
return m;})();console.log(counter.get(),counter.inc(),counter.set(5),counter.dec());
</script></html>

浙公网安备 33010602011771号