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