JavaScript-Funktions-Aliasing-Rätsel
Beim Versuch, die Alias-Methode zum Aliasing von JavaScript-Funktionen zu verwenden, sind einige Benutzer auf Hindernisse in Firefox, Chrome, und sogar die Debug-Fenster von Google Chrome.
Die Ursache
Bei der Analyse wurde festgestellt, dass JavaScript-Funktionen lose mit ihren Hostobjekten verbunden sind. Beim Aufruf einer Funktion bestimmt JavaScript den Umfang und übergibt ihn an die Funktion. Beim Aliasing wird der Bereich nicht explizit angegeben, daher wird das globale Window-Objekt als Bereich übergeben.
Auswirkungen auf Document.getElementById Aliasing
Mit Dokument Insbesondere bei .getElementById wird diese Fehlausrichtung problematisch, da getElementById erwartet, dass es sich bei diesem Objekt um das Dokumentobjekt handelt. Wenn die Alias-Funktion aufgerufen wird, ohne den richtigen Bereich (d. h. Dokument) anzugeben, schlägt der Funktionsaufruf fehl und verursacht den Fehler „Illegaler Vorgang für WrappedNative-Prototypobjekt“.
Arbeitslösung
Um dieses Problem zu beheben, kann die Apply-Methode verwendet werden, um den Bereich beim Funktionsaufruf manuell anzugeben. Anstatt beispielsweise myAlias direkt aufzurufen, kann die folgende Syntax verwendet werden:
myAlias.apply(document, ['someElement']);
Ausnahme: Internet Explorer
Bemerkenswerterweise funktioniert das Funktions-Aliasing wie erwartet in Internet Explorer. Dies ist wahrscheinlich auf die Implementierung von getElementById im Internet Explorer zurückzuführen, die das Fensterobjekt möglicherweise mit dem Dokumentobjekt gleichsetzt.
Das obige ist der detaillierte Inhalt vonWarum schlägt das JavaScript-Funktionsaliasing mit „document.getElementById' in Firefox, Chrome und Debug Windows fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!