对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给window添加一个属性b然后赋值
分类:
编程语言 时间:
2014-07-22 00:11:34
阅读次数:
201
废话不多说,上代码:案例1Test输出结果的截图如下:期望值是:true,但是结结果很悲剧。案例2Test输出结果的截图如下:变化: 把函数b的定义放到了函数a的内部定义,输出结果终于如愿了。综述: 函数的作用域是由函数定义时所决定的。
分类:
其他好文 时间:
2014-07-21 23:30:22
阅读次数:
300
一、 延长作用域链有些语句可以在作用域前端临时增加一个变量对象,该变量对象在代码执行完成后会被移除。①with语句延长作用域。function buildUrl(){var qs="?debug=true"; with(location){ var url=href+qs; } return...
分类:
编程语言 时间:
2014-07-09 23:11:22
阅读次数:
304
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。JavaScript作用域 任何程序设计语言都有作用...
分类:
编程语言 时间:
2014-07-01 11:01:43
阅读次数:
302
js词法环境包括环境变量绑定及外部引用'函数创建的时候有个内部属性[[scope]],它指向当前函数的词法环境对象。而词法环境的外部引用一个词法环境'直到全局词法环境'它外部引用为null'这样就构成作用域链。当进入可执行代码时'会创建执行环境'执行环境包括词法环境变量环境及this关键字绑定'如果...
分类:
Web程序 时间:
2014-06-28 15:18:07
阅读次数:
223
with在严格模式下是禁止使用的,而debugger是在调试模式下才有效果的,目测作者自己在用的脚本压缩工具在有dubugger语句的情况下会影响压缩结果,导致失败。with(varible)实际上是改变作用域链,将当前的作用域链上加上varible的属性,使用结束后再把作用域链变回原来的。with...
分类:
其他好文 时间:
2014-06-26 21:38:01
阅读次数:
250
/**
* 作用域链:
*/
var a = "a";
function hao947(){
var b = "b";
alert(a);// output a
alert(b);// output b
// alert(c);// o...
分类:
编程语言 时间:
2014-06-24 21:17:24
阅读次数:
219
当内部函数创建时,静态的保存了父作用域链,即使父函数执行完毕,其变量对象(这里面保存着我们想要的父变量)一直保存在内部函数的作用域链中。内部函数不再被调用之前,这个活动对象一直在内存中(通俗讲就是这时候父函数的变量对象和内部函数绑定在一起了)。这种机制取名为闭包。简洁地说:闭包就是有权访问其他函数作...
分类:
其他好文 时间:
2014-06-14 21:40:12
阅读次数:
216
闭包和作用域链是JavaScript中比较重要的概念,首先,看看几段简单的代码。代码1: 1
var name = "stephenchan"; 2 var age = 23; 3 function myFunc() { 4 alert(name); 5
var na...
分类:
编程语言 时间:
2014-06-02 13:14:44
阅读次数:
386
闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式为:在一个函数内部创建另一个函数。
“当某个函数被调用时,会创建一个执行环境(execution
context)及相应的作用域链。然后,使用arguments和其他命名参数的值来初始化函数的活动对象(activation ob...
分类:
编程语言 时间:
2014-05-30 20:20:13
阅读次数:
366