ええ、私は本当に自分の関数を次のように定義したいと思っています:
function myFunction(arguments) {}
しかし、引数は
関数に渡される引数に対応する配列のようなオブジェクト。
しかし、くそー、私は本当に参照したいです
arguments.a, arguments.b
それ以外の:
arguments[0], arguments[1]
ええ、私は本当に自分の関数を次のように定義したいと思っています:
function myFunction(arguments) {}
しかし、引数は
関数に渡される引数に対応する配列のようなオブジェクト。
しかし、くそー、私は本当に参照したいです
arguments.a, arguments.b
それ以外の:
arguments[0], arguments[1]
したがって、引数に「arguments」という名前を付けることができますが、本当の問題はその理由です。
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);
}
Šime Vidasの回答から取ったこれはどうですか
function myArgs() {
arguments = arguments[0];
console.log(arguments);
}
myArgs({a: 1,b: 2});