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>

运行结果:

封装后:

//对外只暴露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();

运行结果:

 

posted @ 2017-12-05 19:17  赖粥粥  阅读(172)  评论(0编辑  收藏  举报