哎呀,我真的想把我的功能定义为:
function myFunction(arguments) {}
但参数是
与传递给a的参数对应的类似Array的对象 功能
但是,我真的想参考
arguments.a, arguments.b
而不是:
arguments[0], arguments[1]
答案 0 :(得分:2)
所以,你当然可以命名一个参数“论点”,但真正的问题是为什么。
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);
}
答案 1 :(得分:1)
function foo (params) {
// params.a
// params.b
}
用法:
foo({ a: 123, b: 456 });
答案 2 :(得分:1)
如何,取自ŠimeVidas回答
function myArgs() {
arguments = arguments[0];
console.log(arguments);
}
myArgs({a: 1,b: 2});