function a(x,y){return x+y};
調用a(20,30)
形參指的是函數定義的參數,也就是x和y。實參是指傳入的參數也就是20和30
1,可選形參
a) 函數聲明為兩個形參function a(x,y){},但是調用時可能之傳入a(1),第二個被忽略的參數将被傳入undefined。
b) 注意:在參數可選時,在函數裡注意判斷是否為undefined。
2,可變長的實參清單
a) 如果實參的長度大于形參,可以用arguments得到所有的實參。否則多餘的實參會被忽略掉。
arguments是實參對象,可以像數組一樣通過下标取到所有的實參,例如:(取最大值)
function max(){
var max=Number.NEGATIVE_INFINITY;//表示負無窮
for(var i=0;i<arguments.length;i++)
if(arguments[i]>max){max=arguments[i]}
return max
}
var ma=max(12,2222,14,454,633) //傳回值為2222
3,對象屬性作為實參(在形參比較多時)
也就是把要傳遞的參數以鍵值對的形式封裝成對象,需要用時直接傳遞對象。
4, 可以把函數作為參數
a,函數可以指派給另一個函數 例如:
function square(x){return x*x}
var s=square; //現在s和square指向同一個函數
suqare(4); //16
s(4) //16
b, 函數作為參數
function add(x,y){return x+y}
function subtract(x,y){return x-y}
function op(opt1,opt2,opt3){//opt1傳入一個函數
return opt1(opt2,opt3)
}
調用:op(add,2,3) //相當于add(2+3)
op(add,op(add,2,3),op(subtract,2,3)) //相當于(2+3)+(2-3)
轉載于:https://www.cnblogs.com/Ycc9/p/5363250.html