все параметры в javascript являются необязательными, вы можете использовать массив параметров внутри функции для доступа к параметрам, переданным обычно следующим образом:
function myFunction(option1)
{
var option2 = arguments[1];
if(arguments[0] == option1)
alert("Happy Day, Option1 = " + option1 + ", Option2 = " + option2);
}
myFunction("Hello", "World");
Производит: Happy Day, Option1 = Hello, Option2 = World
Надеюсь, это иллюстрирует, как вы можете использовать массив arguments для улучшения кода.
function process_type(url, domid, domain, scan_id)
{
var myOptions = {
domain: domain,
scan_id: scan_id
};
if(arguments[4])
myOptions["type"] = arguments[4];
$.get(url, myOptions,
function(data)
{
$(domid).html(data);
});
}
Затем вы можете вызвать его с последним параметром, являющимся типом как необязательный, если параметр передан, он используется, если не опущен.
Также, поскольку фактический параметр необязателен, во-первых, вы также можете добавить имя в конец определения функции и использовать его, если, но вместо arguments[4]
вы бы сделали if(type) myOptions["type"] = type;
function process_type(url, domid, domain, scan_id, type)
{
var myOptions = {
domain: domain,
scan_id: scan_id
};
if(type)
myOptions["type"] = type;
$.get(url, myOptions,
function(data)
{
$(domid).html(data);
});
}
Этот вызов будет включать тип
process_type("xxx", "xxx", "xxx", "xxx", "xxx");
, где этот вызов не будет
process_type("xxx", "xxx", "xxx", "xxx");