让我说我的功能看起来像这样:
function foo()
{
console.log(arguments);
}
foo(event_1="1", event_2="2");
在这种情况下,输出将是:
[object Arguments] {
0: "1",
1: "2"
}
如何获取参数的键(event_1,event_2)而不是(0,1)?
答案 0 :(得分:5)
与@ Robby的答案类似,您也可以使用Object.keys
:
function foo() {
console.log(Object.keys(arguments[0]));
}
foo({event_1:"1", event_2: "2"});
答案 1 :(得分:4)
将您的参数作为对象传递,并遍历对象的属性名称:
function foo() {
for (var key in arguments[0]) {
console.log(key);
}
}
foo({event_1: "1", event_2: "2"});
答案 2 :(得分:1)
在这种情况下,0和1确实是参数的关键。对于event_1="1"
,您没有将键传递给函数,而是将值"1"
赋给变量event_1
,然后将值传递给函数。
如果您需要传递键/值对,则可以改为使用对象:
function foo(data)
{
for (var key in data)
{
console.dir("key="+key+", value="+data[key]);
}
}
foo({ first: "hello", second: "bye" });
答案 3 :(得分:0)
我不知道这是否会对你有帮助,但你可以使用一个对象。像这样:
function foo(anobj)
{
console.log(anobj.event_1, anobj.event_2);
}
foo({event_1:"1", event_2:"2"});