-
使用闭包的注意点 1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。 2)闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便 改变父函数内部变量的值。查看全部
-
function f1(){ var n=999; nAdd=function(){n+=1} function f2(){ alert(n); } return f2; } var result=f1(); result(); // 999 nAdd(); result(); // 1000 闭包的概念 上一节代码中的f2函数,就是闭包。 各种专业文献上的“闭包”(closure)定义非常抽象,很难看懂。我的理解是,闭包就是能够读取其他函数内部变量的函数。 由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。 所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。 闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。 代码中,result实际上就是闭包f2函数。它一共运行了两次,第一次的值是999,第二次的值是1000。这证明了,函数f1中的局部变量n一直保存在内存中,并没有在f1调用后被自动清除。 为什么会这样呢?原因就在于f1是f2的父函数,而f2被赋给了一个全局变量,这导致f2始终在内存中,而f2的存在依赖于f1,因此f1也始终在内存中,不会在调用结束后,被垃圾回收机制(garbage collection)回收。 这段代码中另一个值得注意的地方,就是“nAdd=function(){n+=1}”这一行,首先在nAdd前面没有使用var关键字,因此 nAdd是一个全局变量,而不是局部变量。其次,nAdd的值是一个匿名函数(anonymous function),而这个 匿名函数本身也是一个闭包,所以nAdd相当于是一个setter,可以在函数外部对函数内部的局部变量进行操作。查看全部
-
用 box-shadow:0 0 8px #ddd;设置边框发光效果, -moz-box-shadow:0 0 8px #ddd;/*firefox*/ -webkit-box-shadow:0 0 8px #ddd;/*google*/ [ 查看全文 ]查看全部
-
overflow:hidden去除浮动: 当一个盒子设置overflow:hidden,而盒子内的所有元素都设置为浮动,此盒子不会因为所有元素的浮动而坍塌: 1.如果此盒子设置了宽高值,那么无论盒子内元素的宽高为多少,盒子的宽高值都是我们设定的值; 2.如果此盒子没有设置宽高值,那么盒子内元素将撑开此盒子(盒子将不会因为元素的浮动而坍塌).查看全部
-
用QQ截图,按完crtl+alt+1之后,只按ctrl就可以看到16进制查看全部
-
// 编写JS代码 var lis = document.getElementsByTagName("li"); for(var i=0;i<lis.length;i++){ lis[i].onmouseover=function(){ this.className="lihover"; } lis[i].onmouseout=function(){ this.className=""; } }查看全部
-
如何设置li鼠标移上是有外发光,且有边框 右侧无边框,无背景图片 对chrome和firefox等浏览器设置外发光效果 border:2px solid #DDD; box-shadow:0 0 8px #DDD; -moz-box-shadow:0 0 8px #DDD; -webkit-box-shdow:0 0 8px #DDD;查看全部
-
ie6 hack csshover.htc查看全部
-
用<dl><dt><dd>标签(3个都是块级标签,dt、dd标签是同级的)对搜索引擎友好,直接使用a标签对引擎不友好。查看全部
-
PX:像素Pixels PT:点Points pt 是绝对长度单位 px 是相对长度单位查看全部
-
<script type="text/javascript"> window.onload = function () { //获取所有的Li标签集 var lis = document.getElementsByTagName("li"); //循环遍历所有的标签使其在鼠标移到及移出执行相应的命令 for(i=0;i<lis.length;i++){ lis[i].onmouseover = function(){ this.className = "lihover"; } lis[i].onmouseout = function(){ this.className = ""; } } } </script>查看全部
-
IE6 兼容 其他组建 :hover 属性 body{ behavior:url(css/csshover.htc); }查看全部
-
box-shadow:0 0 8px #DDD; 参数1:阴影向右距离(负数为反方向) 参数2:阴影向下距离(负数为反方向) 参数3:阴影模糊度 参数4:阴影颜色查看全部
-
边框发光效果是由 边框颜色 加上阴影效果颜色,合在一起实现的。 border:2px solid #DDD; box-shadow:0 0 8px #DDD; -moz-box-shadow:0 0 8px #DDD; -webkit-box-shadow:0 0 8px #DDD; -o-box-shadow:0 0 8px #DDD;查看全部
-
http://www.imooc.com/code/3609 为右侧右下角的图片设置超出div的设置查看全部
举报
0/150
提交
取消