(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