第七章 函数表达式

定义函数的方式:函数声明和函数表达式。

函数声明:关键字 function
                函数声明提前
函数表达式:和其他表达式一样,使用前必须赋值。
 
递归:arguments.callee 
arguments 是一个对象,这个对象有一个属性叫做 callee,该属性是一个指针,指向拥有这个 aruguments 对象的函数。
 
闭包:有权访问另一个函数作用域中变量的函数。
 
关于函数:
     1. 创建时:创建一个包含全局变量对象的作用域链,保存在[[Scope]]属性中。
     2. 调用时,创建该函数的执行环境,复制[[Scope]]属性中的对象构建起执行环境的作用域链,创建活动对象并将其推入执行环境作用域链的前端。
 
作用域链的本质是指向变量对象的指针列表,它只包含引用但不实际包含变量对象。
 
关于this:this 对象是在运行时基于函数的执行环境绑定的。注意匿名函数的执行环境具有全局性,它的this指向 window。
 
每个函数在被调用时都会自动取得两个特殊对象:this 和 arguments。
因为函数也是对象,所以包含两个属性:length 和 prototype
同时也包含两个方法:apply() 和 call() 。
call() 和 apply() 的第一个参数都是在其中运行函数的作用域。
posted @ 2015-04-27 10:43  Bestend  阅读(165)  评论(0编辑  收藏  举报