最近在理解 js的严格模式,提到了“禁止使用with语句,因为with语句无法在编译时就确定,属性到底归属哪个对象。”
因为之前并没有接触过with语句,所以现在整理一下whith语句;
W3 school对于with()语句是这样解释的
msdn.microsoft.com 对于with()语句是这样解释的
<script type="text/javascript"> var obj={ a:1, b:2, fn:function(){ console.log('0') } } with(obj) { console.log(a)//1 console.log(b)//2 fn()//0 } </script>
所以总结下来,with 语句通常用来减少特定情形下必须写入的代码数量。如上例,还是比较方便的,可以减少代码量,但是由于运行比较缓慢,且代码的变量不好的读取和调试,一般不使用。