好处:1.希望一个变量长期驻扎在内存当中2.避免全局变量的污染3.私有成员的存在用法:1.模块化代码2.在循环中直接找到对应元素的索引
模块化代码
var aaa = (function(){ var a = 1; function bbb(){ a++; alert(a); } function ccc(){ a++; alert(a); } return { b : bbb, c : ccc }})();aaa.b(); //2aaa.c(); //3alert(a); //报错找不到a,因为这里的a已经私有化了,避免了全局污染
希望一个变量长期驻扎在内存当中
function aaa(){ var a = 1; //程序结束后,这个a的内存不会被释放 return function(){ a++; alert(a); }}var b = aaa(); //或者不这样赋值调用,而是直接aaa()()这样用b(); //2b(); //3alert(a);//报错找不到a,因为这里的a已经私有化了,避免了全局污染
被污染的a
var a = 1;function aaa(){ a++; alert(a);}aaa(); //2aaa(); //3alert(a);//能够被调用,此时的a为全局
在循环中直接找到对应元素的索引
var aLi = document.getElementsByTagName('li'); for(var i=0;i
在IE下引发内存泄露的处理方法
window.onload = function(){ var oDiv = document.getElementById('div1'); oDiv.onclick = function(){ alert(oDiv.id); }; window.onunload = function(){ //在最后释放掉内存 oDiv.onclick = null; }; };