Чем плох with? В гугле пишут, что эта инструкция может усложнить понимание кода, при не правильном обращении могут появиться ошибки. Webstrom подсвечивает как варнинг.
Как мне показалось, with довольно удобная конструкция.
var person = {
name: 'anon',
age: '20',
gender: 'M'
};
var props = '';
with (person) {
props = 'name=' + name + ';age=' + age + ';gender=' + gender;
}