JavaScript一些关键概念
垃圾回收:http://www.cnblogs.com/dolphinX/p/3348468.html 引用计数和标记清除
作用链和闭包:http://www.cnblogs.com/dolphinX/p/3280876.html
JavaScript内部机制深入讲解
原型链
http://www.cnblogs.com/onepixel/p/5024903.html
http://www.cnblogs.com/sitemanager/p/3535959.html new关键字
http://www.cnblogs.com/onepixel/p/5024903.html prototype和_proto_
http://www.cnblogs.com/purediy/archive/2012/09/12/2682490.html 还是原型链,讲new的原理
http://www.cnblogs.com/onepixel/p/5043523.html 还是讲new,讲new不仅创建了对象还实现了继承
http://www.cnblogs.com/onepixel/p/5036369.html scope和this,其中scope讲的还是作用域,this表示的当前调用函数的对象,如果没有则默认是windows对象
http://www.cnblogs.com/dolphinX/p/3280876.html 作用域链
使用js模仿类:
http://www.wufangbo.com/js-ding-yi-lei/
http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html 阮一峰,主要是通过作用域链来实现函数
http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_encapsulation.html 模仿实现封装
三种实现继承的方式:有点难度
http://www.cnblogs.com/tugenhua0707/p/5068449.html#3332550
http://www.cnblogs.com/purediy/archive/2012/09/13/2684007.html
javascript中对象分为普通对象和函数对象,其中函数对象有三种形式
闭包:
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html?20120612141317#comments 阮一峰
总结:
js只有函数作用域,没有块作用域。
new关键字创建对象,将this绑定到函数对象,执行函数,并将函数内的变量赋值给该对象,使之成为成员变量
this表示当前调用函数的对象,若没有默认为windows。
当一个对象被引用时,整个作用域链是不会被垃圾回收机制回收的。每个作用域链节点是函数,要顺着作用域链查找变量。
函数对象增加变量的时候要使用prototype,否则将视为static变量为所有实例对象所共有。而普通对象直接使用点运算符即可添加属性
原型链上的节点是共用的,而作用域链上的节点,每执行一次就是不同的节点。
模拟类的实现的两种方法,一种使用new关键字这主要是通过原型链方式实现,另一种通过var a = {}闭包实现,通过作用域来实现。
使用prototype和使用this来添加成员函数/变量的区别是,实例化以后前者所有实例共享一份内存,后者是所有实例都有一份拷贝。
闭包看作静态变量
new Function得到的对象还可以继续使用 new调用其构造函数
不错的js博客
http://www.cnblogs.com/sitemanager/category/538640.html
http://www.cnblogs.com/onepixel/
http://www.cnblogs.com/onepixel/p/5036369.html