Ich bin neu in Javascript und ich habe ein Problem, das ich nicht lösen kann.Aufruf der Funktion von einer anderen Funktion - Javascript API
Am Anfang hatte ich den folgenden Code, und funktionierte gut
function foo(){
var load_b = new Array();
load_b = b();
}
function a() {
var files = document.getElementById("images").files;
return files;
}
function b(){
var get_a = a.call(get_a);
return get_a;
}
nun eine API, und das Problem ist, ich versuche, das zu schaffen, wenn ich var get_a = a.call(get_a);
oder var get_a = a();
, erhalte ich ein:
Uncaught ReferenceError: a is not defined(…).
ich viele verschiedene Möglichkeiten des Aufrufs eines von b versucht, aber ich bekomme immer einen Fehler. Momentan sieht mein Code so aus. Habt ihr Ideen?
function foo(){
var new_api = new my_api();
var load_b = new Array();
load_b = new_api.b();
}
var my_api = function(){
return {
a : function a() {
var files = document.getElementById("images").files;
return files;
},
b : function b() {
var get_a = a();
return get_a;
}
}
}
Sie werden lernen müssen, um das 'this' Objekt zu verwenden, um diese Funktionen zugreifen - sie sind nicht global deklariert, so dass die Standard-Suche von' Fenster [a] 'resultiert in' undefiniert'. Wenn Sie dies tun, sollten Sie sich die 'Klassen'-Delkaration in JS ansehen, anstatt anonyme Objekte aus Ihren Funktionen zurückzugeben.Schauen Sie sich auch Prototypen an, da Sie auf diese Weise einen neuen Verweis auf eine Funktion _jedesmal_ erstellen, während Sie beim Prototyp nur einmal vorgehen (Klassen sind übrigens nur schicke Prototypen). – somethinghere