我正在通过Head First JavaScript了解嵌套函数。以下是我无法理解的代码。关于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由函数式 功能嘎嘎定义,所以它的范围是整个 嘎嘎的功能,但它只是定义了 函数表达式求值之后,直到年底 功能体“。 因此,我在函数评估之前调用函数,所以不应该抛出异常,或者我不理解这个概念?
我在chromes控制台中得到一个'Uncaught TypeError:quacker不是函数'。看看这个[fiddle](http://jsfiddle.net/34h4e2dd/),当你运行时,控制台中的任何消息? –
我无法理解它,因为它缩进严重。 http://jsbeautifier.org/ – Bergi
我为你清理了缩进。使用正确的缩进来指示代码的结构非常重要。 (@Bergi,看起来像我的编辑与您的评论交叉路径。) –