说明: 该教程绕开了javascript的一些基本的语法知识,直接讲解javascript中最难理解的两个部分,也是和其他主流面向对象语言区别最大的两个部分——原型和闭包,当然,肯定少不了原型链和作用域链。帮你揭开javascript最神秘的面纱。 为什么要偏偏要讲这两个知识点? 这是我在这么...
分类:
编程语言 时间:
2014-10-30 09:24:33
阅读次数:
222
作用域
作用域就是变量和函数的可访问范围,控制着变量和函数的可见性与生命周期,在JavaScript中变量的作用域有全局作用域和局部作用域。
全局和局部作用域下面用一张图来解释:...
分类:
编程语言 时间:
2014-10-29 21:38:31
阅读次数:
289
1 1 原型链的终点是Object.prototype,当一个访问一个对象的属性的时候,首先在它的构造函数里面去查询this定义的属性,如果找到相应的属性就立即终止查询,如果没有找到相应的属性,就沿着原型链一层一层的查找直到Object.prototype。例如上面的...
分类:
其他好文 时间:
2014-10-29 18:40:14
阅读次数:
139
=>重复声明:var num=10;var num="abc";如上例子,变量在同一条作用域链中 ,会以最终结果变量的值为准。=>遗漏声明num=10;在开发中,这是一个忌讳的变量声明方式。变量如果不声明直接使用,变量就是一个全局的变量,具有全局作用域,这跟c#中的静态变量类似。但在js中并没有块级...
分类:
其他好文 时间:
2014-10-28 19:23:58
阅读次数:
132
1.作用域(scope):在javascript没有块级作用域,是由函数来划分的。变量和函数的作用域是在定义时决定而不是执行时决定,也就是说词法作用域取决于源码,通过静态分析就能确定,因此词法作用域也叫做静态作用域(with和eval除外)。当定义了一个函数,当前的作用域链就保存起来,并且成为函数的...
分类:
其他好文 时间:
2014-10-28 11:57:58
阅读次数:
157
JavaScript中有Scope(作用域),Scope chain(作用域链),Execute context(执行上下文),Active Object (活动对象),Dynamic Scope(动态作用域),Closure(闭包)这些概念,要理解这些概念,我们从静态和动态两个方面去分析一下。 ....
分类:
编程语言 时间:
2014-10-28 09:23:43
阅读次数:
207
/*JS代码预解析、变量作用域、作用域链等应该能作为学习JS语言的入门必备知识。下边给出些简要解释和一些典型的代码段,若要了解更多,能从网上搜索到更多相关示例。引用网上的一段有关“JS的执行顺序”的解释:如果一个文档流中包含多个script代码段(用script标签分隔的js代..
分类:
Web程序 时间:
2014-10-25 18:53:46
阅读次数:
197
在学习JavaScript的变量作用域之前,我们应当明确几点:JavaScript的变量作用域是基于其特有的作用域链的。JavaScript没有块级作用域。函数中声明的变量在整个函数中都有定义。1、JavaScript的作用域链首先看下下面这段代码:观察alert(rain);这句代码。JavaSc...
分类:
编程语言 时间:
2014-10-11 18:50:15
阅读次数:
219
本文讲到的是如何从数据访问层面上提高JS 代码的执行效率。总的来讲有以下几条原则:函数中读写局部变量总是最快的,而全局变量的读取则是最慢的;尽可能地少用with 语句,因为它会增加with 语句以外的数据的访问代价;闭包尽管强大,但不可滥用,否则会影响到执行速度以及内存;嵌套的对象成员会明显影响性能...
分类:
其他好文 时间:
2014-10-09 14:09:14
阅读次数:
280
1.变量在声明他们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。eg:alert(tmp);vartmp=123;//未定义而不会报错2.作用域链的一个经典例子:name="lwy";functiont(){varname="tlwy";functions(){varname="slwy";console.log(name);}functionss(){console.log(name);}s..
分类:
Web程序 时间:
2014-10-08 00:34:45
阅读次数:
247