2009-05-18 2 views
2

Я помню, что некоторое время назад я читал, что with() имеет серьезные последствия для производительности в JavaScript из-за его возможного недетерминированного изменения в стеке области. Мне трудно найти недавнее обсуждение этого. Это все еще так?Javascript с() performance

ответ

4

Это не так много, поскольку имеет влияние на производительность, так как это только inadvisable. См. also.

Для записи это детерминированный взгляд с точки зрения браузеров, но не разработчик, которому необходимо разместить гораздо больше доверия, чем обычно, в контексте переменной.

+0

Я просто имел в виду, что он может быть недетерминированным, например 'with (getSomeObjectBasedOnUserInput())'. Я кое-что помню из-за этого утверждения, JIT/оптимизатор не может ничего сделать раньше времени и не может повторно использовать данные оптимизации, потому что пользовательский ввод может измениться. –