JS函数是否可以接受没有任何已定义参数的参数对象?

时间:2018-01-28 04:35:10

标签: javascript function parameters arguments

即。有没有办法容纳一个论点,例如字符串,如果像这样调用函数:foo('str'),如下所示:

function foo(){
  console.log(<the_argument>)
}
console.log(foo('str')) // <--- 'str'

5 个答案:

答案 0 :(得分:3)

您可以使用&#34;参数&#34;获取foo中提供的参数的关键字(&#39; str&#39;)。对于前者

function foo(){
  var arg = arguments; // contains array of arguments provided
  console.log(arg[0]);
}
console.log(foo('str')); // prints "str"

答案 1 :(得分:2)

您可以使用arguments对象执行相同的操作:

    function foo() {
      if(arguments.length >0) {
         return arguments[0];
      }
    }
    console.log(foo('str'));

其他信息: ES6引入Rest parameters&amp; Spread语法有助于处理函数

答案 2 :(得分:1)

可以使用函数内的arguments数组检索传递给JS函数的参数。

function func1(a, b, c) {
   console.log(arguments[0]);
   // expected output: 1

   console.log(arguments[1]);
   // expected output: 2

   console.log(arguments[2]);
   // expected output: 3
}

func1(1, 2, 3);

有关详细信息,请参阅Mozilla文档https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

答案 3 :(得分:1)

是的。有一个隐式的USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS nagios nrpe3 2222 4 tcp6 *:5666 *:* 局部变量。它是可迭代的,可以像数组一样使用(尽管它不是数组)来访问所有函数的参数而不依赖于任何形式参数。

arguments

有关更详细的定义,请参阅Arguments object

答案 4 :(得分:0)

显然不是。你可以检查一下自己。如果你处于有意义的一面,那么你有一些叫DI的东西,你可以注入服务。

但你可以在外面制作变量并在函数内部访问。如果你认为合适,你可以测试它。

实际上,你可以这样做,查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments