2014-11-06 94 views
2

我读通过雄辩Javascript和看到这个功能:该功能如何在不设置参数的情况下工作?

function multiplier(factor) { 
    return function(number) { 
    return number * factor; 
    }; 
} 

var twice = multiplier(2); 
console.log(twice(5)); 
// → 10 

不过,我没有把握内在功能是如何分配的变量(5)的数量参数?雄辩的JS试图解释它,但我没有得到它。

+1

执行此行后'var twice = multiplier(2);',Twice是一个函数。 '两次=功能(号码){ 返回号码* 2; };'并且当你执行这行'console.log(两次(5));' 数字的值为5,它将返回10 – Gilsha 2014-11-06 11:17:36

+1

@Gilsha - 把它放在答案中,你会得到我的投票 – myfunkyside 2014-11-06 11:19:51

+0

所以如果两次成为内部函数,因子变量会发生什么?它存储在内存或其他东西?这可能是显而易见的,但不是我... – evu 2014-11-06 11:21:45

回答

1

内部函数是multiplier返回值。它直到console.log(twice(5));才会被调用,明确地通过值5

+0

而在'5'这个函数中呢?数字或因素? – myfunkyside 2014-11-06 11:15:26

+1

当然号码:'返回功能(号码){' – Quentin 2014-11-06 11:15:45

+1

是啊..“当然”在这种情况下是没用的,你不觉得吗?如果我们知道这很简单,那我们就不会问了。 – myfunkyside 2014-11-06 11:17:24

相关问题