javascript笔记



------------------------------------------------------------------------闭包

http://blog.csdn.net/aspdao/article/details/4092422

http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1530074.html

<ul>
  <input type='button' value='btn1' id="btn1"/>
  <input type='button' value='btn2' id="btn2"/>
  <input type='button' value='btn3' id="btn3"/>
</ul>


function f(x){
return function(){alert(x);}
}
(function test(){
for (var i =1;i<4;i++){
var li_x = document.getElementById('btn'+i);
li_x.onclick = f(i);
}
})();


-------------------------------------------------------闭包 作为私有名字空间

http://hbc8848.iteye.com/blog/798724

var TreeItem = (function(){

    var numTreeItems = 0;
    var numTreeItems2 = 0;
    function counter(){
    numTreeItems ++;
    document.write("Created "+numTreeItems+" tree items!<br/>");
    }
    return function(){
    var label=199;
    this.setLabel = function( newLabel ){
            label = newLabel;
    }; 
    this.getLabel = function(){
            return label;
    };
    this.getNumTreeItems = function(){
    return numTreeItems;
    }
    counter();
    return 9911;
    }
})(); 
alert(TreeItem());// Created 1 tree items!  9911
var treeItem1 = new TreeItem(); // Created 2 tree items!
alert(treeItem1.getLabel());// 199
treeItem1.setLabel(2222); //2222
alert(treeItem1.getLabel());// 2222
alert('numTreeItems:'+treeItem1.getNumTreeItems());//numTreeItems:1
var treeItem2 = new TreeItem(); // Created 3 tree items!
alert(treeItem2.getLabel());// 199
alert('numTreeItems:'+treeItem2.getNumTreeItems());//numTreeItems:2
posted @ 2012-12-16 20:12  bielidefeng  阅读(103)  评论(0编辑  收藏  举报