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

相关文章
相关标签/搜索