我正在通過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,看起來像我的編輯與您的評論交叉路徑。) –