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

Posted wljqds

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS的with关键字到底是什么?相关的知识,希望对你有一定的参考价值。

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关键字到底是什么?的主要内容,如果未能解决你的问题,请参考以下文章

理解javascript中的with关键字

揭秘 Python 中的 with 关键字

js中ES6语法的super到底是啥?

深入理解JavaScript中的this关键字

Java面试问题之 volatile 关键字到底是什么?

为啥这不起作用:使用 "With ROW_NUMBER" 插入 SQL 语句。错误是关键字“With”附近的语法不正确