ich in einer Art und Weise interessiert war, die Zahl der Anrufe an die injectMethod auf der folgenden Konstruktor Funktion zu reduzieren: einReduzierung Anzahl der Anrufe auf die Methoden eines JavaScript-Objekt
function InjectScriptsAndExecute(url) {
this.url = url;
this.injectMethod = function() {
var inject = $.ajax({
url: this.url,
cache: true,
dataType: 'script'
});
return inject;
}
}
var pngFix = new InjectScriptsAndExecute("/Global/ICIS/Scripts/DD_belatedPNG_0.0.8a-min.js");
var pngList = new InjectScriptsAndExecute("/Global/ICIS/Scripts/DD_PNG_listing.js");
pngFix.injectMethod();
pngList.injectMethod();
Gibt es eine Weise, die ich passieren kann Objekt an die Konstruktorfunktion, die so viele URL-Referenzen enthält, wie ich möchte, ohne eine neue Variable deklarieren zu müssen und anschließend die Methode aufzurufen?
Als eine Randnotiz, anstelle von this.injectMethod = function() {... ', sollten Sie diese Funktion wirklich wiederverwenden, indem Sie sie zum' Prototyp' von 'InjectScriptsAndExecute()' hinzufügen. Es muss keine neue Funktion für jede Instanz erstellt werden. Nach dem Konstruktor, aber bevor Sie Instanzen erstellen, führen Sie 'InjectScriptsAndExecute.prototype.injectMethod = function() {...' aus und entfernen Sie diese Methode aus dem Konstruktor. – user113716
@ Patrick DW - warum ist das? – RyanP13
@ RyanP13: Einfach effizienter. Sagen Sie, wenn Sie den Konstruktor 100 Mal mit 'new' aufrufen. Sie haben für jede Instanz eine separate (noch identische) Funktion erstellt. Wenn Sie die Funktion zum "Prototyp" hinzufügen, gibt es, unabhängig davon, ob Sie 1 oder 1.000 Instanzen erstellen, nur die eine Funktion, die alle gemeinsam nutzen. – user113716