Вызов выражения функции с именем вне

У меня есть выражение функции в JavaScript, как это:

(function () {
    .
    //code here
    .
    .
}());

как я могу вызвать его из другого места, как из другой функции.

Я попробовал это.

var bind = (function () {
    //code here...//
}());

и вызвал его в какой-то другой функции, такой как

bind();

или же

new bind();

или же

var b = new bind();

но это не работает Как я могу это исправить?

1 ответ

С этим утверждением:

var bind = (function () {
    //code here...//

    return 42;
}());

bind переменная не назначена этой функции. Вместо этого ему присваивается возвращаемое значение непосредственной функции. Так вы получите bind = 42,

Определить функцию с немедленной функцией

Вы можете захотеть создать функцию внутри непосредственной функции (которая может составить замыкание, если хотите) и вернуть ее для дальнейшего использования. Смотрите пример ниже:

var bind = (function() {
    function B(){
        // do something
        return 42;
    }
    return B;
}());

bind(); // <-----bind is a B(), so invoke it will return 42

Это потенциально создаст функцию из непосредственной функции и назначит ей bind переменная, чтобы вы могли вызвать его позже.

Другие вопросы по тегам