#with
function foo(obj) {
with(obj) {
a = 2;
b = 1;
}
}
var o1 = {
a: 3
}
foo(o1);
console.log(o1);
with是对一个已经声明的变量的地址的引用,通过在with方法中对变量的值/属性值进行修改的一种方法
var sMessage = "hello";
with(sMessage) {
alert(toUpperCase()); //输出 "HELLO"
}
这个例子中,with 语句用于字符串,所以在调用 toUpperCase() 方法时,解释程序将检查该方法是否是本地函数。如果不是,它将检查伪对象 sMessage,看它是否为该对象的方法。然后,alert 输出 “HELLO”,因为解释程序找到了字符串 “hello” 的 toUpperCase() 方法。