有人可以用简单的语言解释这个代码如何工作以得到9的结果?
内部函数的返回会发生什么?我m assuming that the enclosing function return is assigned to the variables addTwo and addFive... where does the inner function get its argument (number)? I完全迷失了这个,教程没有解释它.
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)
var addTwo = makeAddFunction(2);
Run Code Online (Sandbox Code Playgroud)
1.2被赋值为amount并绑定在函数范围内.内部add函数可以访问它,因此保持"缓存".
所以返回的内容基本上就是 function(number) { number + 2 };
var addFive = makeAddFunction(5);
Run Code Online (Sandbox Code Playgroud)
2.5以相同的方式分配,并function(number) { number + 5 };返回.
show(addTwo(1) + addFive(1));
Run Code Online (Sandbox Code Playgroud)
3. function( number ) {number+2}被调用并被1送入函数,因此2+1被返回3.
4. function( number ){number+5}被调用并被5送入函数,因此5+1被返回6.
5. 6并3添加,所以我们得到9.
6.9被送到这个show功能.
| 归档时间: |
|
| 查看次数: |
926 次 |
| 最近记录: |