當前位置:才華齋>設計>網頁設計>

javascript函式到底是什麼

網頁設計 閱讀(8.93K)

javascript函式是一個比較奇怪的東西,接觸一段時間你就會犯迷糊,弄不明白它到底是什麼了。你是否會因為有的javascript函式沒有名字而莫名其妙,是否會因為javascript函式的引數沒有型別而抓狂,是否為javascript函式以表示式的形態存在而徹底崩潰。正是因為有了這些煩惱才讓javascript函式值得我們尋味,我想從函式的構成來細說函式,這聽起來像是一句廢話,講任何東西當然是從構成去談,但是由於javascript函式你確實捉摸不了它的形態,因此這裡我是從一個標準函式的構成來細說。

javascript函式到底是什麼

1.函式名

在面嚮物件語言中,函式一般都有名稱,但javascript函式不一定,這類函式稱為匿名函式或者函式直接量。它就像是一個表示式,然後這個表示式的左值即可以用來呼叫函式,也可以儲存在變數中傳遞給其它的函式。它的好處就是不用每次呼叫的時候建立新的物件。

複製程式碼 程式碼如下:

var f= function (x) {return x*x;};

alert( f(6) );

以上例子就會在頁面上彈出視窗顯示36

2.引數

javascript函式的引數也比較神奇,呼叫javascript函式時如果填寫的引數和函式定義的'引數不一致(例如個數不一致),程式不會出錯,有時甚至能呼叫成功,這對於java語言是無法想象的,但javascript函式可以做到。例如上面的例子,我們這樣呼叫:

複製程式碼 程式碼如下:

alert(f(6,7))

結果仍然是36。雖然這樣不會出錯,但是我們仍然想函式被正確的呼叫,保證呼叫時和函式定義的引數數目一致。通過Arguments物件可以獲取函式呼叫者的引數數目。修改上述程式碼。

複製程式碼 程式碼如下:

var f= function (x) {

if(th>1) {

return "out of range";

} else {

return x*x;

}

};

alert( f(6,7) );

處理獲取函式呼叫者的引數數目,還可以獲取到這些引數的值,將上述程式碼再進行一番修改:

複製程式碼 程式碼如下:

var f= function (x) {

if(th>1) {

return arguments[0]*arguments[1];

複製程式碼 程式碼如下:

} else {

return x*x;

}

};

alert( f(6,7) );

你能猜出結果是多少嗎?對,是42。