在JavaScript的世界裡,定義函數的方法多種多樣,這正是JavaScript靈活性的體現,但是正是這個原因讓初學者摸不著頭腦,尤其對於沒有 語言基礎的同學。正所謂條條大道通羅馬,但是如果道路太多,會讓行路者不知所措,因為不知道走那條路才是正途,呵呵,廢話一大篇,閒言少敘,先看代碼:
/*第二種方法,使用Function()建構子克隆函數*/
var F = new Function("a","b","alert(a b)");
F(a,b);
其實相當於以下程式碼:
function F(a,b){
alert(a b);
}
/*第三種方法,使用函數直接量*/
var zhenn = function(){
alert("zhenn");
}
zhenn();
其中用「function語句」和使用「函數直接量」來定義函數的方法似乎比較常見,也比較好理解,在此不多說。針對使用Function()建構函數克 隆函數,一般很少用,因為一個函數通常有多條語句組成,如果將他們以字串的形式作為參數傳遞,難免會使得程式碼的可讀性很差。
在這裡再順便提一下構造函數吧,其實從字面上理解,構造函數似乎也是函數,其實它並不是函數,而只是一種函數模型。舉個不恰當的例子,構造函數相當於一部剛組裝好的車子,無論遠看還是近看,它都是一部車子,但是還沒有加油(代表在使用前的一個必要步驟),所以它並不能啟動。如果想要這輛車子正常行駛,就必 須給它加上油,其實這個過程就等同於構造函數的實例化,否則它並不能正常運作!看下面這個範例: