码迷,mamicode.com
首页 > Web开发 > 详细

JS的with关键字到底是什么?

时间:2019-07-31 09:17:51      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:fun   eval   一个   var   cti   with   方式   重复   func   

with关键字

with在JS中通常被当做重复引用同一个对象多个属性的快捷方式。

var obj = {
    a: 1,
    b: 2,
    c: 3
};
with (obj) {
    a = 3;
    b = 4;
    c = 5;
}

但会有奇怪的副作用,比如:

function foo (obj){
    with (obj) {
        a: 2;
    }
};

var o1 = { a: 3 };
var o2 = { b: 3 };

foo(o1);
console.log(o1.a); // 2

foo(o2);
console.log(o2.a); // undefined
console.log(a); // 2,a可以从全局访问到!变量泄漏!

严格模式下,eval和with都是禁止的,因此不要使用。

JS的with关键字到底是什么?

标签:fun   eval   一个   var   cti   with   方式   重复   func   

原文地址:https://www.cnblogs.com/wljqds/p/11273733.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!