Javascript 中的回调是什么?

问题描述 投票:0回答:3

MDN 说回调是作为参数传递给另一个函数的函数。据我了解,这意味着回调包含在括号内。 这个是链接

但是,我曾经在 Freecodecamp 上看到一篇文章,说回调是 MDN 中类似描述的函数,而回调函数是包含在另一个函数块中的函数。这意味着回调函数充当子函数。

我错了还是两个来源之间有些混淆?

javascript function callback
3个回答
0
投票

回调是 ANY 函数,它作为参数传递给另一个函数并且意味着被 回调,在 receiver 函数内部的某处调用。剩下的就不是那么重要了。您可以将函数分配给变量并将变量作为回调传递,因为在 JS 函数中是第一类对象

Function
类/函数的实例。


0
投票

回调是作为参数传递给另一个函数的函数。回调函数的主体可以驻留在全局范围内或其他函数或类方法中。

例如:

const callback = () => console.log('Hello, world');
setTimeout(callback, 1000);

在这种情况下,回调的主体在全局空间中定义,并作为参数传递给

setTimeout

第二个选项:

const startMyTimer = () => {
  const callback = () => console.log('Hello, world');
  setTimeout(callback, 1000);
};

在这种情况下,回调在另一个函数的主体中定义,

startMyTimer
,并作为参数传递给
setTimeout
.

第三个选项:

const startMyTimer = () => {
  setTimeout(() => console.log('Hello, world'), 1000);
};

这里回调的主体在

setTimeout
函数调用中声明并作为参数传递给它。

如果有帮助,请告诉我。


-1
投票

在另一个函数范围内定义的函数称为闭包

function outer() {
   let str1 = "Hello, "
   return function inner() {
       return str1 + "world!"
   }
}

console.log(outer()())

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures

作为参数传递给另一个函数的函数称为回调

https://developer.mozilla.org/zh-CN/docs/Glossary/Callback_function

function one() {
   return " world!"
}

function two(callback) {
    return "hello" + callback()
}

console.log(two(one))

© www.soinside.com 2019 - 2024. All rights reserved.