对于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