Вам нужно передать вызывающую и аргументы в load_api
, иначе как он может узнать значения нерелевантных переменных?
function load_api(f, text) {
...
function detect_language(text) {
if (!loaded) {
load_api(detect_language, text); // or use load_api(arguments.callee, text)
И затем вы можете вызвать их в обратном вызове.
"callback": function() {
loaded = true;
f(text);
Если A - переменная, вы можете использовать переменную arguments
и Function.apply
:
function A (x, y, z) {
B(A, arguments); // or B(A, [x, y, z])
}
function B (f, arr) {
setTimeout(1000, function() {
f.apply(this, arr);
});
}