Javascript: получить имена фактических аргументов, переданных в функции
Можем ли мы узнать имя фактических аргументов, переданных в функции? как
func(a,b,c,d);
когда мы это называем, я хочу, чтобы на выходе были напечатаны a, b, c, d. Что-то вроде, если я определяю func как
function func(e,f,g,h) {
// do something here so that
console.log('something');//prints a,b,c,d as output
}
EDIT: следующее не полностью соответствует цели, но если в javascript, связанном с этим вопросом, ничего не может быть сделано, то следующий может быть ответом. Смотрите, может ли кто-нибудь построить вокруг этого?
function func(){
var args = Array.prototype.slice.call(arguments),result='';
for(var i in this){
if(args.indexOf( this[i])!==-1 ){
result+=i+',';
}
}
console.log(result);
}
поэтому, если я назову,
var a=22, b=46, c=99;
func.call(this,a,b,c);//or func(a,b,c)
будет печатать a, b, c, но
в следующем случае он не будет выполнен:
var w=4,a=4, b=4, c=99;
тогда вывод будет a, b, c, w, что неверно, поскольку w не является переданным аргументом.
Смотрите, может ли кто-нибудь построить вокруг этого?
Ответы
Ответ 1
Мне нужно, потому что имена также содержат некоторую информацию, которая мне нужна в моей логике функций
если я вызываю func (a, b, c, d), тогда есть один поток, если логика в func, и если я назову его func (l, m, n, d), то логический поток в функциональном алгоритме изменится и соответственно, выход тоже изменится.
Есть что-то глубоко неправильное в вашем понимании JS или вашей концепции вашей проблемы, или, скорее, и то, и другое.
Функции не могут знать и не знать и не знать, и не имеют оснований для того, чтобы знать, какие переменные, значения или выражения использовались при их вызове.
Я не знаю, решит ли это вашу проблему, что бы это ни было, но подумайте о том, чтобы сделать следующее:
func({a,b,c,d});
Формат {a,b,c,d}
создает объект с ключами a
и т.д., значениями которого являются переменная a
. Это синтаксис ES6. В ES5:
func({a: a, b: b, c: c, d: d});
Затем в вашей функции вы можете посмотреть ключи в объекте, переданном в качестве параметра.