即,如果像这样调用函数,是否有任何方法可以容纳参数,例如字符串: 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)
有关更详细的定义,请参阅参数对象。
但是你可以这样做,比如在函数外部创建变量并在函数内部访问。如果您认为合适,可以对其进行测试。
实际上,您可以做到,请检查 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments