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

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 に答える
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 に答える