...надеюсь я правильно сформулировал вопрос.
Суть вот в чем. Есть такая структура кода:
function myBigFunction() {
func1('func2');
func1('func3');
function func1(functionName) {
parent[functionName]; // что написать вместо 'parent', чтобы вызов функции сработал?
};
function func2() {
// ...
};
function func3() {
// ...
};
}
Если бы функции
func2 и
func3 были объявлены глобально, я бы мог написать
window[functionName]
и всё бы работало. Но как обратиться именно к родительской функции?
Расширенный вариант кода для тех у кого есть время:
function myBigFunction() {
loadData('/api/url-a', 'func2', [a, b, c]);
loadData('/api/url-b', 'func3', [1, 2, 3]);
function loadData(url, handler, params) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
var dat = [this.responseText];
parent[handler].apply(null, dat.concat(params)); // что написать вместо 'parent', чтобы вызов функции сработал?
}
};
xhr.open("GET", url, true);
xhr.send();
}
function func2(data, a, b, c) {
// ...
};
function func3(data, x, y, z) {
// ...
};
}