我最近发现了这样的JavaScript代码:
someFunction()()
在没有经典IIFE语法的情况下,函数在函数之后立即被调用。
这种语法叫什么?以及它是如何工作的?
答案 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);
这是一个过分的简化,但功能可能很强大。