Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Конструкцию «with» убрали в strict mode в ECMAScript 5?

with(){} statements are dead when strict mode is enabled — in fact it even appears as a syntax error. While the feature was certainly mis-understood and possibly mis-used I’m not convinced that it’s enough to be stricken from the record.

Я, конечно, понимаю чем плоха конструкция with, но отключать её в strict mode… Мне кажется излишним.

ECMAScript 5, кстати, будет в FireFox 4.

Ctrl →WiMAX jammer
6 комментариев
анонимус 2011

хз. я оставляю мострокод в JS. с with порой можно начать легко путаться откуда у чего ноги растут

indeec17 2011

голосую против

indeec17 2011

with сокращать код в разы очень помогает. Лучше бы заставили браузеры (или среды разработки) просто отчитываться, свойство какого объекта было/будет задействовано. Надо бы этим разработчикам ECMAScript 5 сильно урезать скорость интернета, чтобы глупостей не придумывали

Евгений Степанищев (bolknote.ru) 2011

Комментарий для indeec17:

Да, лучше попробовать исправить недостатки, а не убирать конструкцию полностью.

megaflop 2011

Комментарий для Евгения Степанищева:

Какие преимущества with по сравнению с var d = someObjectWithVeryLongAndUglyName?

bolk (bolk.livejournal.com) 2011

Комментарий для megaflop:

with(a)with(b) {
    method1()
    method2()
}