本文共 697 字,大约阅读时间需要 2 分钟。
- 函数声明: js 引擎会有一个 函数声明提升的操作,因为函数声明提升的特性 可以把函数声明放在调用之后。可以先调用后声明。
- 创建一个函数并将它赋值给变量 functionName 。这种情况下创建的函数叫做匿名函数。因为 function 关键字后面没有标识符。 匿名函数的 name 属性是空字符串。
- 函数表达式在使用前必须先赋值。
- 能够创建函数在赋值给变量,也就能把函数胡作为其他函数的返回值返回。
- 递归函数是一个函数通过名字调用自身的情况构成的。 使用 arguments.callee() 方法可以消除耦合。
- 闭包是指有权访问另一个函数作用域中的变量的函数。 即在函数内部创建另一个函数。
- 当某个函数被调用时会创建一个执行环境及相应的作用域链,为读取和写入变量的值就需要在作用域链中查找变量。
- 变量对象:后台的每个执行环境都有一个表示变量的对象。 作用域链本质上是指向变量对象的指针列表。
- 一般,当函数执行完毕后,局部活动对象会被销毁。内存中仅保存全局作用域,但是闭包函数会将外部函数的活动对象添加到它的作用域链中,所以外部函数执行结束之后,他的作用域链会销毁但是活动对象仍在内存中,知道闭包函数销毁。
- 闭包只能取得包含函数中任何变量的最后一个值,因为闭包保存的是整个变量对象,而不是某个特殊的变量。
- this 对象是在运行时基于函数的执行环境绑定的。
- 闭包函数的执行环境具有全局性,因此闭包函数的 this 指向 window。
转载于:https://www.cnblogs.com/dengsheng/p/10720125.html