PHP有個很方便的用法是在定義函數時可以直接給參數設默認值,如:
function simue ($a=1,$b=2){ return $a+$b; } echo simue(); //輸出3 echo simue(10); //輸出12 echo simue(10,20); //輸出30
但js卻不能這么定義,如果寫function simue(a=1,b=2){}會提示缺少對象。
js函數中有個儲存參數的數組arguments ,所有函數獲得的參數會被編譯器挨個保存到這個數組中
於是我們的js版支持參數默認值的函數可以通過另外一種變通的方法實現,修改上例:
function simue (){ var a = arguments[0] ? arguments[0] : 1; var b = arguments[1] ? arguments[1] : 2; return a+b; } alert( simue() ); //輸出3 alert( simue(10) ); //輸出12 alert( simue(10,20) ); //輸出30