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>

 

posted @ 2019-05-08 18:37  aocn  阅读(93)  评论(0)    收藏  举报