您的位置:首页 > Web前端 > JavaScript

JavaScript一些关键概念

2015-12-24 09:36 597 查看
垃圾回收: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: