javascript访问参数名称以进行调试

时间:2011-05-20 14:40:55

标签: javascript web

无论如何都要访问参数的“名称”:

function(arg1, arg2) {
    debug("arg1 is rotten!");
}

现在,如果我更改参数名称,我也必须更改字符串中的名称,所以我在寻找javascript是否有像How do i bind function arguments to the parameters i supply in creating an ArgumentException object?这样的解决方案

我想要一种方法来做类似的事情:

function(arg1, arg2) {
        debug(arguments[0].name+" is rotten!");
    }

因此,每当我更改参数名称时,我都不必搜索更改并进行相应更改(有时会多次使用!)

3 个答案:

答案 0 :(得分:3)

您无法访问变量名称,只能访问其值。你可以得到的最接近的是你的方法的参数是一个'options'样式对象(它只是一个常规的JavaScript对象,但是调用'options'或'opts'并且包含你所有的参数是一种非常普遍的做法):

function test(opts){
    for(var name in opts){
        console.log(name + ' with value ' + opts[name] + ' is rotten!')
    }
}

test({arg1: 'argument 1', arg2: 'argument 2'});

答案 1 :(得分:1)

每当你有一个函数时,函数中都有一个名为arguments的数组,其中包含所有参数

请参阅小提琴:http://jsfiddle.net/maniator/P5FvN/

答案 2 :(得分:0)

试试这个:

function show_me() {
    for (var i=0; i < arguments.length; i++) {
        alert(arguments[i]);
    }
}

show_me('a', 'b');