除了使用函数,使用with关键字也可以产生环境。
with(obj)可以产生一个特殊的环境,在该环境中使用约束,如同obj访问自身的属性。
~~~
var obj = {
func: function () {
return this;
}
};
var foo;
with (obj) {
foo = function () {
console.dir(func());
console.dir(toString());
}
}
foo();
~~~
![](https://box.kancloud.cn/d81e81c639ebfcb04f1638694a27efc6_201x89.jpg)
甚至能访问原型链。