Wie Triptych darauf hinweist, können Sie jede globale Bereichsfunktion aufrufen, indem Sie sie im Inhalt des Hostobjekts finden.
Eine sauberere Methode, die viel weniger den globalen Namensraum verschmutzt, ist explizit die Funktionen in ein Array wie so direkt gestellt:
var dyn_functions = [];
dyn_functions['populate_Colours'] = function (arg1, arg2) {
// function body
};
dyn_functions['populate_Shapes'] = function (arg1, arg2) {
// function body
};
// calling one of the functions
var result = dyn_functions['populate_Shapes'](1, 2);
// this works as well due to the similarity between arrays and objects
var result2 = dyn_functions.populate_Shapes(1, 2);
Dieses Array eine Eigenschaft eines Objekts anders als die global sein könnte Host-Objekt bedeutet auch, dass Sie effektiv Ihren eigenen Namespace erstellen können, wie es viele JS-Bibliotheken wie jQuery tun. Dies ist nützlich, um Konflikte zu reduzieren, wenn Sie mehrere separate Utility-Bibliotheken auf derselben Seite hinzufügen und (wenn es andere Teile Ihres Designs erlauben) die Wiederverwendung des Codes auf anderen Seiten erleichtern.
Sie auch ein Objekt wie so verwenden könnte, die Sie Reiniger finden könnte:
var dyn_functions = {};
dyn_functions.populate_Colours = function (arg1, arg2) {
// function body
};
dyn_functions['populate_Shapes'] = function (arg1, arg2) {
// function body
};
// calling one of the functions
var result = dyn_functions.populate_Shapes(1, 2);
// this works as well due to the similarity between arrays and objects
var result2 = dyn_functions['populate_Shapes'](1, 2);
Beachten Sie, dass ein Array mit einem oder einem Objekt, Sie entweder Verfahren zum Einstellen oder den Zugriff auf die Funktionen nutzen können, und können natürlich speichern Sie dort auch andere Objekte. Sie können weiterhin die Syntax der beiden Verfahren für contant reduzieren, die mit JS wörtliche Notation wie so nicht, dass synamic ist:
var dyn_functions = {
populate_Colours:function (arg1, arg2) {
// function body
};
, populate_Shapes:function (arg1, arg2) {
// function body
};
};
Edit: der für größere Blöcke von Funktionalität natürlich Sie oben auf die sehr häufig erweitern "Modulmuster" ist eine beliebte Methode, um Code-Features in einer organisierten Weise zu kapseln.
I‘ Ich empfehle dagegen, lokale Zweigstellen in einer einzigen "Populate" -Methode zu haben. Es würde es testbarer machen und weniger "hacky" aussehen –
siehe meine Antwort hier. [Anruf mit Namen in Javascript] (https://Stackoverflow.com/a/46090820/7771019) –