【问题标题】:Getting the function arguments in javascript like in PHP [duplicate]像在 PHP 中一样在 javascript 中获取函数参数 [重复]
【发布时间】:2013-01-02 19:09:36
【问题描述】:

可能重复:
Calling dynamic function with dynamic parameters in Javascript
javascript array parameter list

我正在寻找我在 PHP 中使用的以下功能的 Javascript 等效项:

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 函数来获取一个参数,但是如果提供了第二个和第三个参数,我想添加一些代码来做一些事情,但我不知道如何解决这个问题。

我们将不胜感激。

谢谢。

【问题讨论】:

  • 你可以只有一个参数是一个数组(虽然我不是 JS 专家,但可能有更好的方法)。

标签: php javascript


【解决方案1】:

使用arguments 变量。

它不是一个数组(它是一个“类数组对象”,与标准数组有一些不同),但你可以通过这种方式将它转换为一个真正的数组:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 谢谢。我想越简单越好。
    【解决方案3】:

    这个问题是骗人的,但答案很简单:

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

    【讨论】:

      【解决方案4】:

      你已经移植到js的那些函数:

      {php} .js

      【讨论】:

      • 但是除了看如何使用底层的 JS 特性之外应该不应该使用。
      • @Nabil 谢谢,我非常广泛地使用 PHPJS,但在这种情况下,它似乎有点矫枉过正。
      • @Chuck Ugwuh, array()... 是的,但不是其他函数
      猜你喜欢
      • 1970-01-01
      • 2014-12-17
      • 2015-02-24
      • 2012-04-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多