日期:2014-05-16  浏览次数:20328 次

深入理解Javascript之this关键字
this:在Javascript中,This关键字永远都指向函数(方法)的所有者.
http://www.laruence.com/2009/09/08/1076.html
原型链和原型:The prototype is only used for properties inherited by objects/instances created by that function. The function itself does not use the associated prototype
http://www.laruence.com/2010/05/13/1462.html
作用域:JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里
http://www.laruence.com/2009/05/28/863.html

1.  js中的作用域是通过作用域链来实现的,  这个链, 是由一个一个的活动对象组成的, 最顶级的活动对象是window

2. 在js中, 在每一个执行点, this关键字都指当前函数(方法)的所有者.

3. 每个属性,其实都会定义成当前活动对象的属性, 在顶级文件中的每个函数定义,变量定义, 都定义成window对象的属性.

4. 对于函数, 如果通过函数表达式定义的函数, 则在函数表达式执行前, 该函数不可用. 而如果是通过函数定义式定义的函数, js会把它的定义提前, 也就是说在函数定义式之前, 该函数都可用.

5. 因为活动对象链的特性, 所以js支持闭包.

另外关于js中的原型链有一句要说的.
1. 只有函数对象有可以访问的prototype属性, 一般对象不是没有prototype属性, 只是没有可以访问的prototype属性.(严格来讲, 一般对象只有只能JS引擎内部访问的”[[prototype]]”属性)