-
使用閉包的注意點 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.xianlaiwan.cn/code/3609 為右側右下角的圖片設置超出div的設置查看全部
舉報
0/150
提交
取消