Он заставляет все переменные (и функции), объявленные внутри этой функции, находиться в контексте this
, то есть в контексте функции обтекания.
Обычно, если вы создаете переменную, используя var
внутри функции, она является локальной для этой функции, и это хорошо. Но что, если вы этого не сделаете? В этом случае с помощью with
все переменные, которые в противном случае были бы глобальными, вместо этого находятся в контексте с (в данном случае контекст - this
функции.)