技术

JavaScript小知识:with改变作用域

Object.prototype.x = 10;
var w = 20;
var y = 30;


console.log(x); // 10


(function foo() {
    var w = 40;
    var x = 100;
        //{z: 50} 是个对象,所以会继承Object的x属性
    with({z: 50}) {
        console.log(w,x,y,z);//40 10 30 50 此处因为{z: 50}没有w跟y属性,所以会从直接上级作用域中拿
    }
    conslole.log(x);//100
})();

亲自来试一试吧?

我们都在黑暗中寻找光明。

留言

您的电子邮箱地址不会被公开。