我们能知道函数中传递的实际参数的名称吗?喜欢
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
}
编辑:以下内容不能完全达到目的,但如果在与此问题相关的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不是传递的参数。
看,如果有人可以围绕这个建立?
答案 0 :(得分:0)
我需要这个,因为名称还包含我在函数逻辑中需要的一些信息
如果我调用func(a,b,c,d),那么如果func中的逻辑有一个流,如果我用func(l,m,n,d)调用它,则func算法中的逻辑流程会发生变化,因此输出也会改变
您对JS的理解,或您对问题的概念,或者两者都有可能存在严重错误。
函数无法知道,也不知道,也不知道,也没有理由需要知道调用它们时使用了哪些变量,值或表达式。
我不知道这是否能解决您的问题,无论它是什么,但请考虑采取以下措施:
func({a,b,c,d});
{a,b,c,d}
格式创建一个对象,其键为a
等,其值为变量a
。这是ES6语法。在ES5中:
func({a: a, b: b, c: c, d: d});
然后,在您的函数中,您可以查看作为参数传入的对象中的键。