Кажется, что вы на самом деле спрашиваете не о JavaScript как о языке, а о специфических c API. Итак, вот что нужно знать:
В JavaScript все аргументы являются необязательными. Другими словами, нет способа принудительно вызвать, что функция вызывается с правильным количеством или порядком аргументов. Вызывающий должен знать сигнатуру вызываемой функции и вызывать ее соответствующим образом. Также создатель функции должен быть готов к тому, что некоторые или все аргументы не будут переданы. Существует arguments
массивоподобный объект, который есть во всех функциях, которые могут помочь с этим, но проверка входных данных также довольно проста. Вот пример:
// Here's an example of a function that does not explicitly declare any arguments
function foo1(){
// However, arguments might still be passed and they can be accessed
// through the arguments object:
console.log("Arguments.length = ", arguments.length);
console.log(arguments);
}
foo1("test", "boo!"); // Call the function and pass args even though it doesn't want any
// ***********************************************
// Here's an example of a function that needs the first arg to work,
// but the seond one is optional
function foo2(x, y){
if(y){
console.log(x + y);
} else {
console.log(x);
}
}
foo2(3);
foo2(4, 5);
В JavaScript ваши функции могут принимать любой допустимый примитив или объект. Опять же, звонящий должен знать, что такое API, и правильно его называть:
function foo1(string1, number1, object1, string2){
console.log(arguments);
}
foo1("test", 3.14, {val:"John Doe"}, "ing");