(function() {
var x = 5;
(function() {
function f(y) { return (x+y)-2 };
(function() {
function g(h) { var x = 7; return h(x) };
(function() { var x=10; z=g(f); })();
})();
})();
})();
我正在通過我的課堂上的一些問題來爲我們的下一次考試做準備,並且無法弄清楚以上評估的方式。Javascript評估問題(第二部分)
大多數情況下,我不明白調用z = g(f),因爲當f被評估時,它沒有提供參數,所以它如何評估?它怎麼知道你是什麼? g(f)將評估什麼?
另外,據範圍去看,我相信javascript會將大多數所有東西視爲全局變量,因此設置的最後一個x將是函數f中使用的x值,是正確的嗎?
感謝您的幫助!
請注意,這些是我正在練習準備考試的書後面的額外問題,這些不是直接的作業問題。
這不是你剛纔問的那個問題嗎?減少包裝功能。 – 2010-11-19 18:29:37
@meder,它是相似的,但不一樣。 – 2010-11-19 18:31:54
@Matthew Flaschen - 我知道代碼並不完全一樣,但在最後回答中給他的提示應該足以解決這個問題。 – 2010-11-19 18:34:06