JavaScript 延长作用域链?

timeofsunrise
  • 1.5k

在高程三中有一个延长作用域链的例子如下


function buildUrl() {
    var qs = "?debug=true";

    with(location){
        var url = href + qs;
    }

    return url;
}

console.info(buildUrl())

我的理解是在作用域链顶端新增了一个location对象环境:
image.png

问题是为什么第二层环境可以访问url这个变量?不是说不能逆作用域链访问吗?

回复
阅读 1.5k
2 个回答

with这东西就不要学了吧。。。。旧的里面,function和catch中var是独立作用域。

image.png

image.png

var 是函数级的

你知道吗?

宣传栏