2013-01-19 121 views
0

可能重复:
Calling dynamic function with dynamic parameters in Javascript
javascript array parameter list获得在javascript函数参数像PHP

我在寻找的JavaScript等价的以下功能我PHP中使用:

function myfunc() 
{ 
    $arg_arr = array(); 
    $arg_arr = func_get_args(); 

    $my_arg_val_1 = (!isset($arg_arr[1]) || ($arg_arr[1] == '')) ? true : $arg_arr[1]; 
} 

基本上,我试图获得函数参数。我想写一个JavaScript函数来接受一个参数,但是我想添加一些代码来做第二个和第三个参数的一些事情,如果提供的话,但我不知道如何解决这个问题。

任何援助将不胜感激。

谢谢。

+0

你可能只是有一个论点是一个数组(我不是一个JS专家虽然,有可能是一个更好的办法)。 –

回答

1

在JavaScript中,每个函数中都有arguments变量可用。它看起来像一个包含传递给函数的所有参数的数组:

function myfunc() { 
    var arg1 = arguments[0], 
     arg2 = arguments[1], 
     argc = arguments.length; 
} 

myfunc(1, "abc"); // arg1 = 1, 
        // arg2 = "abc", 
        // argc = 2 
+0

谢谢。我认为越简单越好。 –

2

使用arguments变量。

这不是一个数组(这是一个“阵列状物体”,它有一个标准的阵列有一些差别),但是你也可以这样转换为一个真正的数组:

function myfunc() { 
    var argArray = Array.prototype.slice.call(arguments); 
    /* ... do whatever you want */ 
} 
+0

错字? 'can't'->'can'? –

+0

是的,谢谢:) –

+0

@MaëlNison谢谢 –

0

这个问题是一种欺骗,但答案很简单:

function foo() { 
    for (var i = 0; i < arguments.length; i++) { 
    alert(arguments[i]); 
    } 
} 
0

你已经被移植到JS这些功能:

{php} .js

+0

但是,除了寻找如何使用底层JS功能,可能不应该使用。 –

+0

@Nabil谢谢,我使用PHPJS的相当广泛,但在这种情况下,似乎有点矫枉过正的情况。 –

+0

@Chuck Ugwuh,array()...是的,但不是其他函数 –