close

按此前往javascript完整教學目錄

 

 

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_) //operationvalue兩參數在此被當成函式

{

          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!

 

 

上一篇:javascript 常用內建函數

下一篇:javascript 成員函式鍊

arrow
arrow

    埃伯 發表在 痞客邦 留言(0) 人氣()