当被嵌套的返回函数调用时,在全局范围内声明和分配的变量是未定义的



在函数内部创建函数时,以下代码将返回一个字符串,其中name变量将返回为undefined。由于这在全局范围内具有功能范围,因此我希望能够找到并使用全局范围中的name变量。参数命名是否与返回的函数无关,因为这些函数只在函数内部起作用?

我的JavaScript代码:

const name = "Ben"
function testReturn() {
return function (name) {
console.log(`Hello, ${name}`)
}
}

我调用了下面的函数:

> testReturn()()
Hello, undefined
undefined
全局常数name被局部参数name遮蔽。

给其中一个不同的名称,或者,如果你不打算使用它,完全删除参数。

const name = "Ben"
function testReturn() {
return function () {
console.log(`Hello, ${name}`)
}
}

最新更新