with 语句可以方便地用来引用某个特定对象中已有的属性或方法,但是不能用来给对象添加新的属性或方法。要给对象创建新的属性,必须明确地引用该对象。

用法

function Student(){
this.name = 'jeck';
this.age = 20;
this.gender = 'men';
}
var stu = new Student();
with(stu) {
console.log('姓名:' + name + ',性别:' + gender + ',年龄:' + age); // 姓名:jeck,性别:men,年龄:20
}

总结

with 语句使代码更简洁、易读。
由于 with 会根据目标对象产生一个新的可变对象,推入作用域链的头部,这样原有的可访问对象都被往后推了一个层次,这使得它们的访问代价更高了。
因此对于 with 语句最好避免使用。