Dies ist ein sehr merkwürdiges Verhalten (das anscheinend nur bei Chrome auf einem Mac auftritt), bei dem ein Großteil des Codes scheinbar komplett übersprungen wird und Variablen, die Werte haben sollten, als "undefiniert" gesetzt sind.
Hier ist ein Screenshot der Entwicklerwerkzeuge von Chrome. Beachten Sie, dass Zeile 817 nie getroffen wurde! Aber 833 wurde getroffen und was wir sehen, ist eine Ausnahme, die getroffen wurde, und ich suchte den Call-Stack auf, um dieses Durcheinander zu finden. Beachten Sie auch, dass die Variablen "loc", "lon" und "tc" nicht definiert sind, was nicht möglich sein sollte, da sie jeweils in den Zeilen 822, 823/824 und 827/831 ausgewertet wurden. Wenn es einen Fehler in den Berechnungen gab, sollten die Werte dieser Variablen aus meinem Verständnis NaN sein.
Hier ist der eigentliche Code:
%Vor%Kann jemand etwas Licht auf diese Zauberei werfen? Warum sollte ein Haltepunkt ignoriert werden und Variablen nur in Chrome auf einem Mac falsche Werte haben?
BEARBEITEN:
Es scheint, dass ich den Fehler behoben habe. Alles, was ich getan habe, war, den Code in seiner eigenen Funktion zu isolieren, die Funktion einmal aufzurufen, wenn sie eine Ausnahme ausgelöst hat, habe ich sie erneut aufgerufen und sie scheint 100% der Zeit zu funktionieren. Ich bin immer noch sehr neugierig auf die Ursache des Problems.
%Vor% Und dann ersetze ich die Schleife, die ursprünglich die Logik enthielt (in getCircle2
) mit:
Es sieht so aus, als ob Sie ein Opfer des variablen Hebens Ссылка
sein könntenDie Zeile 833 wird wahrscheinlich als eine Deklaration eines Variablennamens innerhalb des Funktionsumfangs gehisst. Das Refactoring Ihrer Variablendeklarationen kann das Problem beheben.
Tags und Links javascript google-chrome