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.4k
2 个回答

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

image.png

image.png

var 是函数级的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏