function funcA(){
var name = "jack";
console.log(name);
return function(){
name = name + " plus";
console.log(name);
};
}
var funB = funcA();
funB()
// expected result: "jack" and "jack plus"
我很困惑爲什麼runnnig var funB = funcA();
只能輸出"jack"
?JavaScript關閉返回函數
爲什麼不輸出第二句話?爲什麼必須再次運行才能按預期輸出?
你是什麼意思的「編譯」?您的代碼按預期工作。你能更具體地指出哪一部分讓你感到困惑嗎? –
讓我們忽略funB(),如果我只調用funcA(),結果是「jack」。但是爲什麼返回句子不起作用?我預測它會輸出「jack plus」 – kennyname
它確實會返回一個函數對象。 – AirNoir