变量赋值后命名函数调用

时间:2018-01-03 23:49:01

标签: javascript

我有不寻常的问题。

我不知道如何在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);
    })
}

很抱歉这个不寻常的问题,但我最近发现了这个功能,之前找不到它。

1 个答案:

答案 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的说明,因此它可能对您有用