定義函數的方式有兩種,一是函數聲明,二是通過函數表達式。
函數聲明的方式如下所示: function functionName(arg0,arg1,arg2){ //函數體 }函數表達式: var functionName=function(arg0,arg1,arg2){ } 匿名函數又稱拉姆達函數,其定義是由函數表達式模式創建的函數,即創建一個函數并將它復制給變量。其特點是function關鍵字后面沒有標識符。匿名函數的name屬性是空字符串。 閉包是指有權訪問另一個函數作用域的變量的函數。創建閉包常見的方式就是在一個函數內部創建另一個函數。 下面的函數定義即為一個閉包: function createFunction(){ var result=new Array(); for(var i=0;i<10;i++){ result[i]=function(){ return i; }; } return result; } 由于閉包會攜帶包含它的函數的作用域,因此會比其他函數占用更多的內存。過度使用閉包可能會導致內存占用過多。 閉包與變量 由于作用域鏈的存在,閉包只能取得包含函數中任何變量的最后一個值。 如下代碼所示為解決實際問題中的閉包與變量的問題: for(var i=0;i新聞熱點
疑難解答