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

js 延长作用域链

时间:2018-06-20 21:12:08      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:uil   location   因此   log   变量   function   tar   作用域   bug   

function buildUrl() {
var qs = "?debug=true";
with (location) {
var url = href + qs;
}

return url;
}
console.log(buildUrl())

在此,with 语句接收的是 location 对象,因此其变量对象中就包含了 location 对象的所有属 性和方法,而这个变量对象被添加到了作用域链的前端。buildUrl()函数中定义了一个变量 qs。当在 with 语句中引用变量 href 时(实际引用的是 location.href),可以在当前执行环境的变量对象中 找到。当引用变量 qs 时,引用的则是在 buildUrl()中定义的那个变量,而该变量位于函数环境的变 量对象中。至于 with 语句内部,则定义了一个名为 url 的变量,因而 url 就成了函数执行环境的一 部分,所以可以作为函数的值被返回。

因为with的方法,所以url也变成了函数buildUrl环境变量

js 延长作用域链

标签:uil   location   因此   log   变量   function   tar   作用域   bug   

原文地址:https://www.cnblogs.com/mawn/p/9205458.html

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