В JavaScript функции известны как «Первоклассная функция», это означает, что вы можете возвращать / передавать функции как любой другой тип, например (объект / числа).Вы можете найти подробнее об этом здесь .
Вы можете разбить эту переменную на переменные, чтобы сделать ее более понятной, например:
function LogFunction() {
return function() {
return "just console log this";
};
}
var a = LogFunction()
console.log( a() );
Однако, как другие указали правильно, выВы можете вызвать это напрямую
console.log( LogFunction()() );
В примерах переменных, когда LogFunction()
вызывается с ()
, вы вызываете функцию, а результат этого вызова присваивается переменной a
, какрезультат вызова функции - это другая функция, вам нужно вызвать результат предыдущей функции, чтобы получить доступ к результату этой функции a()
.
Вы можете иметь столько уровней вложенной функции, сколько пожелаетеи с новым ES2016 вы можете воспользоваться функциями стрелок, чтобы сделать этот код более понятным.
const LogFunction = () => () => "just console log this";
console.log( LogFunction()() );