0

由于不允许重载函数,我试图找到一种将值传递给函数的方法。

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)
   ....
}

如您所见,我正在尝试对函数进行重载。如何将值传递给带有可选参数的函数?

4

3 回答 3

2

检查这个链接..

Object.prototype.toString.call(vArg) === "[object Array]";

于 2013-08-17T07:55:52.450 回答
0

您可以通过以下方式进行:

function myMethod() {
 switch (arguments.length) {
  case 0:
   //TO DO
   break;
  case 1:
   var value1 = arguments[0];
   //TO DO
   break;
 }
}
于 2013-08-17T12:28:42.983 回答
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 对象来重载函数。当然你也可以传递数组或集合。

于 2013-08-17T08:03:04.527 回答