2009-05-18 10 views
2

Ich erinnere mich, vor einer ganzen Weile, dass with() hat einige schwerwiegende Auswirkungen auf die Leistung in JavaScript aufgrund seiner möglicherweise nicht-deterministischen Änderung der Scope-Stack. Ich habe Schwierigkeiten, eine aktuelle Diskussion darüber zu finden. Ist das immer noch wahr?Javascript mit() Leistung

Antwort

4

Es ist nicht so sehr, dass mit der Leistung Auswirkungen hat, wie es nur inadvisable ist. Siehe also.

Für die Aufzeichnung ist es aus Sicht des Browsers deterministisch, aber nicht der Entwickler, der im Kontext der Variablen viel mehr Vertrauen als üblich setzen muss.

+0

Ich meinte nur, es könnte nicht-deterministisch, wie 'mit (getSomeObjectBasedOnUserInput())'. Ich erinnere mich an etwas wegen dieser Aussage, dass der JIT/Optimizer nichts im Voraus tun kann und Optimierungsdaten nicht wiederverwenden kann, da sich die Benutzereingabe ändern könnte. –