这个js语法叫什么

时间:2018-07-09 20:28:10

标签: javascript

我最近发现了这样的JavaScript代码:

someFunction()()

在没有经典IIFE语法的情况下,函数在函数之后立即被调用。

这种语法叫什么?以及它是如何工作的?

2 个答案:

答案 0 :(得分:5)

它是一个返回另一个函数的函数。

这是一个有关其工作原理的示例,可以帮助您更好地理解。

function sum(x){
  return function(y){
    return x+y;
  }
}
sum(3)(5); //8

答案 1 :(得分:0)

为您的代码提供帮助:

import pandas as pd
import numpy as np
test_inputs = pd.read_csv("../input/test.csv", delimiter=',')
test_inputs = np.asarray(test_inputs)

您需要具有如下代码:

someFunction()();

在此示例中,您首先调用function someFunction() { console.log('someFunction()'); // do something before return return function() { console.log('someFunction()()'); // do something else here } } someFunction()(); ,然后调用someFunction返回的函数。

当您需要传入将在内部函数中使用的变量,但将来会像下面这样调用内部函数时,这样做可能会很好:

someFunction

我经常在Node.js中将其用于需要单个值唯一的通用中间件。

function someFunction(outerVal) {
  console.log('Outer called.');
  return function(innerVal) {
    console.log('inner called.');
    return outerVal * innerVal;
  }
}

var inner = someFunction(12);

setTimeout(()=> {
  console.log(inner(4));
}, 1000);

这是一个过分的简化,但功能可能很强大。