function B;
просто генерирует синтаксическую ошибку.
Вы можете использовать выражение функции .Поскольку функции являются объектами первого класса, вы можете назначить функцию переменной:
var B; // declare (global) variable (outer scope)
function A() {
// assign a function to it
B = function() {
alert("function B is running");
};
}
// we have to call A otherwise it won't work anyway
A();
// call B
B();
Вы также можете позволить A
вернуть функцию:
function A() {
return function() {
alert("function B is running");
};
}
B = A();
Это создаст соотношениемежду A
и B
немного понятнее.
Конечно, вы всегда можете определить глобальную переменную, пропустив var
, но вы должны использовать это очень осторожно.Используйте как можно меньше глобальных переменных.
function A() {
B = function() {
alert("function B is running");
};
}
И держу пари, есть лучший способ сделать это, в зависимости от вашей реальной цели.
Подробнеео функциях и объеме функций.