function add(a, b) {
return Number(a) + Number(b);
}
print(add(100, 200)); // 300
無名の関数リテラルが返す関数オブジェクトの参照を、変数で保持する方法もあります。 JavaScript の関数はオブジェクトです。
var add = function(a, b) {
return Number(a) + Number(b);
}
print(add(100, 200)); // 300
関数の定義に記述した仮引数と、実際に渡す実引数の数は異なっていてもエラーにはなりません。
実引数の方が多ければ、余分な実引数は無視され、仮引数の方が多ければ、指定されなかった引数は undefined
になります。
function hoge(a, b) {
print(a);
print(b);
}
hoge('AAA', 'BBB', 'CCC'); //=> AAABBB
hoge('AAA'); //=> AAAundefined
このような仕様のため、JavaScript には引数の数が異なる関数を定義する仕組み(オーバーロード)はありません。