gpt4 book ai didi

javascript - 关于 Javascript 中的嵌套函数

转载 作者:行者123 更新时间:2023-11-28 10:52:15 25 4
gpt4 key购买 nike

我正在通过 Head First JavaScript 来理解嵌套函数。下面是我无法理解的代码。

var migrating = true;
if (migrating) {
quack(4);
fly(4);
}

var fly = function(num) {
var sound = "Flying";
for (var i = 0; i < num; i++) {
wingFlapper();
}
function wingFlapper() {
console.log(sound);
}
};

function quack(num) {
var sound = "Quack";
for (var i = 0; i < num; i++) {
quacker();
}
var quacker = function() {
console.log(sound);
};
}

书上说“quacker 是由函数表达式定义的函数庸医。所以它的范围是整个quack 函数,但它仅在之后定义计算函数表达式,直到结束函数体。”所以我在评估函数之前调用该函数,所以它不应该抛出异常或者我不理解这个概念吗?

最佳答案

这应该会出错。 quacker() 是一个遵循自顶向下方法的函数表达式。如果将该函数表达式更改为函数语句,它应该可以正常工作。我知道这很令人困惑,看看这个

Why can I use a function before it's defined in Javascript?

试试这个。它不应该出错,因为我们使用的函数语句在执行任何其他操作之前会绑定(bind)到上下文(此处为全局)。

function qaucker() 
{
console.log(sound);
};

关于javascript - 关于 Javascript 中的嵌套函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31371205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com