JavaScript函数
定义
JavaScript
函数是执行特定目的的代码块。
如果一个函数没有return
语句,则它默认返回undefined
。
1 |
|
2 |
|
3 |
|
4 |
|
函数声明 - 命名函数
1 |
|
2 |
|
3 |
|
函数表达式
1 |
|
2 |
|
3 |
|
构造函数
函数同样可以通过内置的JavaScript
函数构造器Function
来定义。
1 |
|
2 |
|
匿名函数
1 |
|
2 |
|
3 |
|
自调用函数 - 当函数书写完成之后立即调用
1 |
|
2 |
|
3 |
|
函数表达式可以 “自调用”。
自调用表达式会自动调用。
如果表达式后面紧跟 () ,则会自动调用。
不能自调用声明的函数。
Function 属性
arguments
以数组形式获取传入函数的所有参数。arguments
对象不是一个Array
。它是一个类数组对象,可以转换为一个真正的Array
。
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
函数闭包
简单的闭包示例
当内部函数引用了外部函数的数据,并且执行函数,此时就产生了闭包。
常见创建闭包的方式,就是在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量。
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
fn
函数返回的一个匿名函数,它未接受参数,直接从执行环境中获取。
闭包的缺点与缺点
闭包的优点就是缺点,因为闭包把局部变量常驻在内存中,可以避免使用全局变量。全局变量污染导致多个使用公共变量的模块不可预测,所以使用私有的封装的局部变量
进行隔离。
同时由于闭包内的局部变量不会立即销毁,所以可能占用更多的内存,过度使用闭包会导致性能下降。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!