哎呀,我真的想将我的功能定义为:
function myFunction(arguments) {}
但争论是
对应于传递给函数的参数的类数组对象。
但是该死的,我真的很想参考
arguments.a, arguments.b
代替:
arguments[0], arguments[1]
哎呀,我真的想将我的功能定义为:
function myFunction(arguments) {}
但争论是
对应于传递给函数的参数的类数组对象。
但是该死的,我真的很想参考
arguments.a, arguments.b
代替:
arguments[0], arguments[1]
因此,您当然可以将参数命名为“参数”,但真正的问题是为什么。
Chrome 控制台的简短示例:
> function a(arguments){console.log(arguments.a);}
> a({a:1,b:2})
1
> a("cow")
undefined
不是最好的解决方案。
现在,理论上,您可以进行某种映射:
function foo()
{
var argMap = ['a','b']
for(var i = 0; i < argMap.length; i++)
arguments[argMap[i]] = arguments[i];
console.log(arguments.a);
}
foo('a is first')
// console logs 'a is first'
但是又一次……为什么?
你不能做的是获取给定上下文中定义的所有变量:没有与 Python 的locals
. JS 并不是那样构建的。所以我推荐:
function foo(a,b){
console.log(a);
}
function foo (params) {
// params.a
// params.b
}
用法:
foo({ a: 123, b: 456 });
这个怎么样,取自Šime Vidas的回答
function myArgs() {
arguments = arguments[0];
console.log(arguments);
}
myArgs({a: 1,b: 2});