Javascript 函数参数在调用时是否可以是函数
我有两个功能:Javascript 函数参数在调用时是否可以是函数,javascript,jquery,function,ecmascript-6,parameters,Javascript,Jquery,Function,Ecmascript 6,Parameters,我有两个功能: const fn1 = (1, 2) => { //do something } fn2({ param1: 'hello', param2: 'world', param3: fn1(1, 2) }); 调用函数: const fn1 = (1, 2) => { //do something } fn2({ param1: 'hello', param2: 'world', param3: fn1(1, 2) }
const fn1 = (1, 2) => {
//do something
}
fn2({
param1: 'hello',
param2: 'world',
param3: fn1(1, 2)
});
调用函数:
const fn1 = (1, 2) => {
//do something
}
fn2({
param1: 'hello',
param2: 'world',
param3: fn1(1, 2)
});
当我调用上述函数时,fn1()在fn2()之前被调用。。为什么会这样?我需要在fn1()之前遍历fn2()。()
在指向函数的标识符调用该函数之后。由于要在完成f2
中的所有操作后调用函数,请将()
s放在fn2
中,而不是放在调用者中:
您需要将回调函数传递到fn2,如下所示:
fn2({
param1:'你好',
参数2:“世界”,
参数3:fn1
});
从fn2中调用fn1,如下所示:
const fn2=({param1,param2,param3})=>{
$('id#u one')。文本(参数1);
$('id'u two')。文本(参数2);
参数3();
}
无论何时使用括号,都会立即调用该函数
您当前使用的
param3:fn1()
是说“param3等于此函数的返回值”,并且它运行fn1()来获取返回值,即使函数没有返回任何内容。如果fn1()也有参数怎么办?对不起,我应该在我的问题中提到,然后你需要把它们放在()
:param3(1,2)
@nb\u nb\nb如果它接受,比如说,1
和2
,那么我会传递:()=>fn1(1,2)
(如果它们是在调用者中定义的,但不是在fn2
部分)@Barmar,在param3()内)?@nb_nb_nb这取决于需要定义参数的位置。如果在fn2
内,则使用答案中的代码,但将参数传递到param3
。如果在fn2
之外,则()=>fn1(1,2)
作为传递给fn2
的参数。之所以发生这种情况,是因为必须解析fn1()
才能将属性分配给param3
,这是创建传递给fn2
的对象所必需的。都是嵌套的。如果您解释一下为什么不需要调用fn1
是一个问题,以及您通常要做什么,可能会更清楚。
fn2({
param1: 'hello',
param2: 'world',
param3: fn1
});