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



即,如果像这样调用函数,是否有任何方法可以容纳参数,例如字符串: foo('str')这样写:

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

您可以使用 "arguments" 关键字来获取 foo('str'( 中提供的参数。例如。

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

您可以使用参数对象来执行相同的操作:

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

附加信息:ES6引入了Rest参数和Spread语法,这在使用functions时很有帮助

传递给

JS函数的参数可以通过使用函数内的arguments数组来检索。

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

是的,有。有一个隐式arguments局部变量。它是可迭代的,可以像数组一样使用(尽管它不是数组(来访问函数的所有参数,而无需依赖任何形式参数。

function foo()
{
   for (i in arguments) 
   { 
  console.log(arguments[i]); 
   }
}
foo('str','wasdf',9)

有关更详细的定义,请参阅参数对象。

显然不是。你可以检查你自己。如果你在角侧,那么你有一个名为DI的东西,你可以注入服务。

但是你可以这样做,比如在函数外部创建变量并在函数内部访问。如果您认为合适,可以对其进行测试。

实际上,您可以做到,请检查 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

相关内容

最新更新