var obj ={a:1};
with(obj){
a = 2;
b = 3;
}
console.log(obj.a);//2
console.log(obj.b);//undefined
console.log(window.b);//3
[url=http://yuiblog.com/blog/2006/04/11/with-statement-considered-harmful/]with-statement-considered-harmful[/url]
本文通过一个简单的示例展示了JavaScript中with语句可能导致的问题。当使用with语句时,它会引入变量作用域的不确定性,这可能导致意料之外的结果。例如,外部变量可能会被意外修改,或者全局作用域中的变量被无意中创建。
var obj ={a:1};
with(obj){
a = 2;
b = 3;
}
console.log(obj.a);//2
console.log(obj.b);//undefined
console.log(window.b);//3
1万+
1270
2015

被折叠的 条评论
为什么被折叠?