javascript доступ к имени параметров для целей отладки - PullRequest
2 голосов
/ 20 мая 2011

в любом случае есть доступ к «имени» параметра следующим образом:

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

Прямо сейчас, если я изменю имя параметра, мне нужно будет также изменить имя в строке, поэтомуЯ искал, было ли в javascript решение, подобное Как связать аргументы функции с параметрами, которые я предоставляю при создании объекта ArgumentException?

Я хочу, чтобы был способ сделать что-то вроде:

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

, чтобы мне не приходилось искать изменения и вносить соответствующие изменения всякий раз, когда я меняю имя параметра (иногда он используется более одного раза!)

Ответы [ 3 ]

3 голосов
/ 20 мая 2011

Вы не можете получить доступ к именам переменных, только к их значениям. Самое близкое, что вы можете получить, это если ваш аргумент к вашему методу - это объект стиля '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 голос
/ 20 мая 2011

Всякий раз, когда у вас есть функция, в функции есть массив с именем arguments, в котором содержатся все аргументы

см. Fiddle: http://jsfiddle.net/maniator/P5FvN/

0 голосов
/ 20 мая 2011

попробуйте это:

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

show_me('a', 'b');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...