《JavaScript高级程序设计》第七章内容整理。
- 匿名函数
- 闭包
匿名函数
JavaScript定义函数的方式:
1.函数声明(语法形式如下)
1 | function functionName(arg0,arg1,arg2){ |
重要特征: 函数声明提升 ,即执行代码之前会先读取声明。
2.函数表达式(常用语法形式如下)
1 | var functionName = function(arg0,arg1,arg2){ |
这种情况下创建的函数也叫 匿名函数 。
重要特征:函数表达式与其他表达式一样,在使用前必须赋值,不然会出错。
闭包
概念:
闭包是指有权访问另一个函数作用域中的变量的函数。通俗的讲,当在函数内部定义了其他函数时,就创建了闭包。闭包有权访问包含函数内部的所有变量。
原理:
- 在后台环境执行中,闭包的作用链包含着它自己的作用域、包含函数的作用域和全局作用域。
- 通常,函数的作用域及其所有变量都会在函数执行完结束后被销毁。
- 但是,当函数返回了一个闭包时,这个函数的作用域将会一直在内存中保存到闭包不存在为止。
注意:创建闭包必须维护额外的作用域,所以过度使用它们可能会占用大量内存。