Fork me on GitHub

js闭包实际用途

闭包例:防止双击

在线商店的购物车里,为防止“多重购买”,需要防止按钮被双击。

下面用“jQuery + 闭包”来实现这一功能。

 

HTML

<form name="frm" id="frm"> 
  <input type="submit" value="购买" /> 
</form>

JavaScript

$(function(){

    var isClicked = false;

    $('#frm').submit(function(){ // 为购买按钮提供一个匿名函数,而isClicked是与此匿名函数“生死与共”的变量。 
        if (isClicked) { 
            alert('已经下过订单了。'); 
            return false; 
        }

        isClicked = true; 
    });

});

 

这比起写一个类实现来保持状态容易多了,所以推荐使用“jQuery + 闭包”这个强大组合来实现各种功能。

 

如果一个函数依赖另一个或几个函数,但那些其他的函数并不期望与任何其他的代码产生交互。那么这个简单的技巧(使用一个对外公开的函数来扩展那些函数)就可以被用来组织那些函数。

 

posted @ 2013-12-24 13:41  迁梦余光  阅读(271)  评论(0编辑  收藏  举报