1. 函式在javascript中,可以被看做是一個物件。函式宣告方式有兩種:
第一種較傳統,如:
function 函式名稱(參數) {//函式內容}
第二種方式,就是將函式看做一個物件,如:
var 函式名稱=function(參數) {//函式內容}
2. 函式的參數(又稱為引數)可以在函式中用argumants(這在函式中是關鍵字)來呼叫,如此會回傳一個物件,其中包括了輸入的所有參數。argumants物件的用法很像是陣列的用法,有length成員表示參數數目,並可以用索引來呼叫參數。如:
function sumation()
{
var result_=0;
for(var i=0;i<arguments.length;i++)
{result_+=arguments[i];} //用arguments[i]呼叫第i個參數
return result_;
}
document.write(sumation(1,2,3,4,5)); //顯示15
//如此,在寫函式時,可以創造出「不須指定參數數目的函式」,如上面舉例中的sumation(),不管要輸入幾個參數都可以。
3. 函式,也可以被當成另一個函式的參數來使用。如:
function create_student(name_,age_,score_,money_) //一個建立學生物件的函式
{
var student_=new Object(
{
name:name_,
age:age_,
score:score_,
money:money_
});
return student_;
}
var s1=create_student("jade",16,80,7000); //建立學生物件s1
var s2=create_student("umei",12,60,10000); //建立學生物件s2
function name_(s){return s.name;}
function age_(s){return s.age;}
function score_(s){return s.score;}
function money_(s){return s.money;}
function max_(a,b){if(a>=b){return a;}else{return b;}} //求最大值
function min_(a,b){if(a>=b){return b;}else{return a;}} //求最小值
function mean_(a,b){return (a+b)/2;} //求平均值
function get_(operation,value,s1_,s2_) //operation和value兩參數在此被當成函式
{
var v1=value(s1_);
var v2=value(s2_);
document.write(operation(v1,v2));
}
get_(max_,money_,s1,s2); //顯示10000
get_(mean_,score_,s1,s2); //顯示70
//註一:所謂匿名函式,指的是沒有名稱的函式。通常用在參數列中。如上例的get_(mean_,score_,s1,s2),若沒有宣告mean_()函式,則也可以用get_(function(a,b){return (a+b)/2},score_,s1,s2); 來達成求平均值的效果。function(a,b){return (a+b)/2}就直接寫在get_()函式的參數列裡,是個匿名函式。
//註二:匿名函式還有用在另一種情況下,即在宣告時就執行此函式。如:
(function(a,b){
var the_max;
if (a>=b){the_max=a;}
else{the_max=b;}
document.write("the max is "+the_max+"!");
})(2,7); //顯示:the max is 7!