學習JS

充实地生活着發表於2024-11-04
var foo = (
    function CoolModule(){
        var something = 'cool';
        var another = [1,2,3];
        function  doSomething() {
            console.log(something);
        }
        function doAnother(){
            console.log(another);
        }
        return {
            doSomething: doSomething,
            doAnother: doAnother
        }
    }
)();

感覺這個模式很牛逼!記錄一下

再抄錄一個更完整的,

var foo = (
    function CoolModule(id){
        function change(){
            publicApi.identify = identify2
        }
        function identify1(){
            console.log(id);
        }
        function identify2(){
            console.log(id.toUpperCase());
        }
        var publicApi= {
            change,
            identify:identify1
        };
        return publicApi;
    }
)('foo modules')
console.log(foo);

  

JS從來沒有系統學過,就是個小白,見到這個模式,真是驚歎!要多多品味
所有增刪查改的功能全部可以放到裡面,而且自成一個作用域,不會對外面構成汙染,還有,foo是一個單例,也就是說,foo永遠指向的都是同一個物件