JavaScript——封裝

封裝:使用對象封裝的好處是能夠減小全局變量污染的機會,講屬性,函數都隸屬一個對象。閉包

封裝前:函數

<script>

  var name="foo"; //name是全局的,被暴露
  i=1; //全局的,沒有var關鍵字聲明的變量是全局的,與位置關係不大
  function show(){ //show 是全局的,被暴露
    console.log("name->"+name);
    console.log(++i);
  }

  //i是全局的 2
  show(); 
  //3
  show();

</script>

運行結果:this

封裝後:spa

//對外只暴露bar,使用閉包封裝
    var bar=function(){
    var i=1;
        return{
            name:"bar",
            show:function(){
            console.log("name->"+this.name);
            console.log(++i);
            }
        };
    };

    var bar1=bar();
    //2
    bar1.show();
    //3
    bar1.show();

    var bar2=bar();
    //2,由於被封裝,且閉包,i是局部私有的
    bar2.show();

運行結果:code

相關文章
相關標籤/搜索