所以我是编程的新手,我正在尝试用Eloquent Javascript这本书来学习JS.
到目前为止一直很好,直到我用以下代码到达一个例子
function makeAddFunction(amount) {
function add(number) {
return number + amount;
}
return add;
}
var addTwo = makeAddFunction(2);
var addFive = makeAddFunction(5);
show(addTwo(1) + addFive(1));
Run Code Online (Sandbox Code Playgroud)
注意:show就像alert,只显示教程集成的JS控制台屏幕上的变量.
作者说这是一个展示词汇范围如何允许合成函数的例子. 这里的章节
我不明白的是如何addTwo和addFive,这理应是变量,可以将参数传递给函数makeAddFunction和add,更具体地说,请问该函数add知道变量要发送的参数是参数number.
谢谢你的帮助!
我正在读这个例子,我坚持理解一行.我需要了解一切,所以我无法继续前进.
该函数应该隐藏对象内的所有元素.它应该工作.但对我来说,for循环看起来像是无限的.为什么不呢?
getChild: function (i) {
return this.children[i];
},
hide: function () {
for (var node, i = 0; node = this.getChild(i); i++) {
node.hide();
}
this.element.hide(0);
},
Run Code Online (Sandbox Code Playgroud)
从我看到的,该函数使用getChild(0)获取对象的第一个元素,然后再次在该0维对象上调用hide.然后它重置计数器(i)并获取0维对象的第一个元素(它是相同的0-dim对象)并再次调用该函数.
我知道我错了,但这就是我所看到的.请告诉我光明!谢谢