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

你可能感兴趣的:(JavaScript一些关键概念)