闭包在js中具有举足轻重的地位,对于闭包的恰当应用能够使其成为一个有力的编码利器,本章节就通过代码实例分析一下闭包的作用,希望能够给需要的朋友带来一定的帮助,关于闭包的概念可以参阅javascript闭包概念简单解析一章节。 

先看一个代码实例:
   [ 其他 ] 运行代码    下载代码
<script>
var obj={
  value:8,
  add:function(num){
    this.value+=(typeof(num)==="number")?num:1;
  }
}
obj.add();
console.log(obj.value);
obj.add(5);
console.log(obj.value);
</script>
上面的代码运行一切正常,但是有个隐患,你不能保证value的值不会被外部恶意修改,因为value属性对外部是完全开放的。

代码修改如下:
   [ 其他 ] 运行代码    下载代码
<script>
var obj=(function(){
  var value=8;
  return{
    add:function(num){
      value+=(typeof num === "number")?num:1;
    },
    getValue:function(){
      return value;
    }
  };
})();
obj.add();
console.log(obj.getValue());
obj.add(2);
console.log(obj.getValue());
</script>
在以上代码中,由于变量value是一个局部变量,外部不能够随意访问,只能够通过调用add方法的方式修改value的值。

再来看一段代码实例:
   [ 其他 ] 运行代码    下载代码
<script>
var func=function(value){
  return{
    getValue:function(){
      return value;
    }
  }
}
var obj=func("antzone");
console.log(obj.getValue());
</script>

代码描述:javascript闭包用法。javascript闭包用法实例代码下载



109 145



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册



×
×
51前端

注册

×
绑定手机

请绑定手机号,在继续操作

×
单次下载支付

应付金额:279

支付完成后,回到下载页面,在进行下载

官方QQ群
意见反馈
qq群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到