由于不允许重载函数,我试图找到一种方法将值传递给函数。
在 php 中,我通过以下方式解决:
// value2 and value3 are optional
function myMethod(value1, value2 = '', value3 = '')
{
// TO DO
}
在 Java 中,我可以重载方法:
function myMethod(value1)
{
// TO DO
}
function myMethod(value1, value2)
{
// TO DO
}
在 javascript 中我不知道:
var myAwesomeOptions =
{
'value1' : 'abc',
'value3' : 'def'
}
myMethod(myAwesomeOptions);
function myMethod(options)
{
if (value1 == ???? ) ...
or
switch(options)
....
}
正如您所看到的,我正在尝试为函数执行重载。如何将值传递给具有可选参数的函数?
答案 0 :(得分:2)
Object.prototype.toString.call(vArg) === "[object Array]";
答案 1 :(得分:0)
JavaScript中有Argument对象。例如。
function testme()
{
var first_name=arguments[0] || "John";
var last_name=arguments[1] || "Doe";
alert(first_name);
alert(last_name);
}
testme();
testme("Jane");
因此您可以使用Argument对象来重载函数。当然,您也可以传递数组或集合。
答案 2 :(得分:0)
您可以通过以下方式进行操作:
function myMethod() {
switch (arguments.length) {
case 0:
//TO DO
break;
case 1:
var value1 = arguments[0];
//TO DO
break;
}
}