我可以使用“参数”这个词作为参数吗?

时间:2013-07-19 19:55:40

标签: javascript

哎呀,我真的想把我的功能定义为:

function myFunction(arguments) {}

但参数是

  

与传递给a的参数对应的类似Array的对象   功能

但是,我真的想参考

arguments.a, arguments.b

而不是:

arguments[0], arguments[1]

3 个答案:

答案 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});