так что аргумент является массивом переменных ? то нет, нет способа получить исходное имя переменной, как только оно будет передано таким образом. в приемном конце, они просто выглядят как:
["123","abc"];
и ничего более
вы могли бы обеспечить функцию имена переменных и сферы они находятся, как:
function log(arr,scope){
for(var i=0;i<arr.length;i++){
console.log(arr[i]+':'scope[arr[i]]);
}
}
Однако, это проблема, если вы может дать область также. Есть много вопросов, что this
в некоторых областях коды:
- для нестрогих функций,
this
является window
- для строгих функций,
this
является undefined
- для функций конструктора,
this
является сконструированным объект
- в объектном лите,
this
является неотъемным предметом объекта
поэтому вы не можете положиться на прохождение this
в качестве области. если вы не можете предоставить объем, это еще один тупик.
, если передать их в качестве объекта, то вы можете перебирать объекта и его «ключи», а не оригинальные имена переменных. однако в этом случае это больший ущерб, чем лечение.
Это невозможно в Javascript, так как вы хотите, чтобы он работал. Что-то вроде 'var foo = bar = {}' тот же объект упоминается двумя именами, и если вы просто передаете объект в функцию, изнутри функции невозможно отменить этот поиск и посмотреть, какое имя было использовано для передачи он в. – Gareth
Хорошо, тогда я могу остановить поиск. Thanx! – arpo
Вместо этого вы должны научиться использовать отладчик. Начните с размещения строки, содержащей отладчик вместо строки console.log, а затем запустите свой код с Firebug или Chrome Inspector open – Gareth