我有不寻常的问题。
我不知道如何在JavaScript示例中给出操作的话。
var FunctionLayer2 = FunctionLayer1(2); //How to put into words this variable assignment and calling FunctionLayer1()
FunctionLayer2(4); //How to put into words calling function from the created variable with output based on the argument from previous call
function FunctionLayer1 (value1) {
console.log(value1);
return (function (value2) {
console.log(value2*value1);
})
}
很抱歉这个不寻常的问题,但我最近发现了这个功能,之前找不到它。
答案 0 :(得分:1)
您尝试使用的模式称为currying
。这是从另一个函数返回函数时。
function sample(str){
return function(anotherStr){
return str + '' + anotherStr
}
}
var foo = sample('Hello')
var result = foo('StackOverflow')
console.log(result) // 'Hello StackOverflow'
你的案子:
function multiply(x){
return function(y){
return x * y
}
}
var multiply3 = multiply(3)
var multiply3By4 = multiply3(4)
console.log(multiply3By4) // 12
Here
是一个带有简单示例的博客。有关currying
的说明,因此它可能对您有用