Javascript 关于回调函数的使用

Javascript 关于回调函数的使用,javascript,function,closures,Javascript,Function,Closures,我已经读过回调用于事件处理程序或异步代码中,我们不确定响应,但我的问题很简单,当我有一个函数要在另一个函数中使用时,我应该使用回调吗 例如: let name = function () { return "Umar" } let printName = function () { return name() } console.log(printName()) 但在下面的代码中,我尝试将其作为回调函数传递,并返回synatx错误。对于这种情况,我可以在这里使用回调吗?它也返回

我已经读过回调用于事件处理程序或异步代码中,我们不确定响应,但我的问题很简单,当我有一个函数要在另一个函数中使用时,我应该使用回调吗

例如:

let name = function () {
  return "Umar"
}

let printName = function () {
    return name()
}

console.log(printName())
但在下面的代码中,我尝试将其作为回调函数传递,并返回synatx错误。对于这种情况,我可以在这里使用回调吗?它也返回错误

let name = function () {
  return "Umar"
}

let printName = function (name) {
  return name()
}

console.log(printName())
Also I have another problem, Look at this code it is thrwoing an error for the variable to be not defined, however I have defined it
let name = function () {
  return "Umar"
}

let printName = function () {
    let name = name()
    return name
}

console.log(printName())
不过。例如,在第二个函数中将varaible name命名为name1可以正常工作

let name = function () {
  return "Umar"
}

let printName = function () {
    let name1 = name()
    return name1
}

console.log(printName())

为什么name变量在我定义之后仍抛出错误

回调是指将一个函数作为参数传递给另一个函数。你从来没有这样做过

在一个地方,你几乎做到了这一点:

上面写的是一个函数,它调用它作为函数得到的第一个参数

但是,当您随后调用该函数时:

…你不能传递任何论点

因此,名称未定义,函数抛出异常

为什么name变量在我定义之后仍抛出错误

你申报了两次名字。一次是在全局范围内分配函数,另一次是在printName函数范围内分配未定义函数

当我有一个函数要在另一个函数中使用时,是否应该使用回调


不是一般情况。当函数需要在不同的时间调用不同的函数时,可以使用回调

是的,我犯了个错误。我应该在最后一个函数中传递参数,但我忘了传递它。关于name变量。我曾经在全局范围内声明过一次,在局部范围内声明过另一次,我仍然对这种情况表示怀疑。不过你的回答很好。非常感谢。
let printName = function (name) {
  return name()
}
console.log(printName())