Javascript 什么';调用函数和传递函数有什么区别?
这段对话是在今天的工作中出现的,我不能完全理解其中的区别,我的谷歌搜索到目前为止一直没有结果 工作中使用的例子是 DoSomethingFunction().then(function(){ DoSomethingElse(); }); DoSomethingFunction()。然后(function()){ DoSomethingElse(); }); 及 DoSomethingFunction()。然后(DoSomethingElse()); 对我来说,我看的是第一个,它是一个匿名函数,因此会被调用,在它里面,是我们想要调用的函数,但这就是为什么我使用第二个版本,它只调用函数,而不将它包装在单独的函数中Javascript 什么';调用函数和传递函数有什么区别?,javascript,function,Javascript,Function,这段对话是在今天的工作中出现的,我不能完全理解其中的区别,我的谷歌搜索到目前为止一直没有结果 工作中使用的例子是 DoSomethingFunction().then(function(){ DoSomethingElse(); }); DoSomethingFunction()。然后(function()){ DoSomethingElse(); }); 及 DoSomethingFunction()。然后(DoSomethingElse(
有人能给我解释一下区别吗 JavaScript中的函数是对象,可以像其他对象一样传递
DoSomethingElse
是一个可以使用DoSomethingElse()
执行的函数对象
。然后
需要一个函数对象,因此下面的代码只执行函数并返回其值,如果它不返回任何值,则返回未定义的值:
// this is wrong, unless `DoSomethingElse` returns a function
DoSomethingFunction().then(DoSomethingElse());
下面传递一个匿名函数(这是所期望的,然后是一个函数),然后在内部执行DoSomethingElse
DoSomethingFunction().then(function(){
DoSomethingElse();
});
下面将函数对象传递到然后
,并执行与上面相同的操作:
DoSomethingFunction().then(DoSomethingElse);
JavaScript中的函数是对象,可以像任何其他对象一样传递DoSomethingElse
是一个可以使用DoSomethingElse()
执行的函数对象
。然后
需要一个函数对象,因此下面的代码只执行函数并返回其值,如果它不返回任何值,则返回未定义的值:
// this is wrong, unless `DoSomethingElse` returns a function
DoSomethingFunction().then(DoSomethingElse());
下面传递一个匿名函数(这是所期望的,然后是一个函数),然后在内部执行DoSomethingElse
DoSomethingFunction().then(function(){
DoSomethingElse();
});
下面将函数对象传递到然后
,并执行与上面相同的操作:
DoSomethingFunction().then(DoSomethingElse);
JavaScript中的函数是对象,可以像任何其他对象一样传递DoSomethingElse
是一个可以使用DoSomethingElse()
执行的函数对象
。然后
需要一个函数对象,因此下面的代码只执行函数并返回其值,如果它不返回任何值,则返回未定义的值:
// this is wrong, unless `DoSomethingElse` returns a function
DoSomethingFunction().then(DoSomethingElse());
下面传递一个匿名函数(这是所期望的,然后是一个函数),然后在内部执行DoSomethingElse
DoSomethingFunction().then(function(){
DoSomethingElse();
});
下面将函数对象传递到然后
,并执行与上面相同的操作:
DoSomethingFunction().then(DoSomethingElse);
JavaScript中的函数是对象,可以像任何其他对象一样传递DoSomethingElse
是一个可以使用DoSomethingElse()
执行的函数对象
。然后
需要一个函数对象,因此下面的代码只执行函数并返回其值,如果它不返回任何值,则返回未定义的值:
// this is wrong, unless `DoSomethingElse` returns a function
DoSomethingFunction().then(DoSomethingElse());
下面传递一个匿名函数(这是所期望的,然后是一个函数),然后在内部执行DoSomethingElse
DoSomethingFunction().then(function(){
DoSomethingElse();
});
下面将函数对象传递到然后
,并执行与上面相同的操作:
DoSomethingFunction().then(DoSomethingElse);
传递函数意味着函数作为参数传递,并且可以在被调用函数中调用。调用函数意味着执行函数体,并返回一个值。在你的例子中
DoSomethingFunction().then(DoSomethingElse());
您传递函数调用的结果,因此调用DoSomethingElse
的结果(返回值)。
万一
DoSomethingFunction().then(DoSomethingElse);
传递一个函数,然后需要在然后函数中执行该函数以获得其结果。传递函数意味着函数作为参数传递,并且可以在被调用函数中调用。调用函数意味着执行函数体,并返回一个值。在你的例子中
DoSomethingFunction().then(DoSomethingElse());
您传递函数调用的结果,因此调用DoSomethingElse
的结果(返回值)。
万一
DoSomethingFunction().then(DoSomethingElse);
传递一个函数,然后需要在然后函数中执行该函数以获得其结果。传递函数意味着函数作为参数传递,并且可以在被调用函数中调用。调用函数意味着执行函数体,并返回一个值。在你的例子中
DoSomethingFunction().then(DoSomethingElse());
您传递函数调用的结果,因此调用DoSomethingElse
的结果(返回值)。
万一
DoSomethingFunction().then(DoSomethingElse);
传递一个函数,然后需要在然后函数中执行该函数以获得其结果。传递函数意味着函数作为参数传递,并且可以在被调用函数中调用。调用函数意味着执行函数体,并返回一个值。在你的例子中
DoSomethingFunction().then(DoSomethingElse());
您传递函数调用的结果,因此调用DoSomethingElse
的结果(返回值)。
万一
DoSomethingFunction().then(DoSomethingElse);
您传递一个函数,然后需要在然后函数中执行该函数以获得其结果。非常好,但有几个地方我仍然感到困惑。如果.then需要一个函数,而DoSomethingElse()是一个函数对象,那么DoSomethingElse()不是函数吗?匿名函数和函数对象之间有什么区别?如果所有函数都是对象,那么匿名函数也是对象,或者是函数和函数对象的对象是两种不同的东西?函数是对象,匿名与否。当您添加()
时,您正在执行函数并返回某些内容,因此,DoSomethingElse()
不是函数,除非DoSomethingElse
返回函数。看看这是否有助于理解非常好,但有几个地方我仍然感到困惑。如果.then需要一个函数,而DoSomethingElse()是一个函数对象,那么DoSomethingElse()不是函数吗?有什么区别