可以在函数的内部嵌套一个函数。嵌套函数对容器函数是私有的,它自身也形成了一个闭包。
- 内部函数只可以在外部函数中访问。
- 内部函数形成了一个闭包,它可以访问外部函数的参数和变量,但是外部函数不能使用它的参数和变量。
1 | function outside(x) { |
闭包
闭包是 JavaScript 中最强大的特性之一。JavaScript 允许函数嵌套,并且内部函数可以访问定义在外部函数中的所有变量和函数,以及外部函数能访问的所有变量和函数。但是,外部函数却不能够访问定义在内部函数中的变量和函数。这给内部函数的变量提供了一定的安全性。此外,由于内部函数可以访问外部函数的作用域,因此当内部函数生存周期大于外部函数时,外部函数中定义的变量和函数将的生存周期比内部函数执行时间长。当内部函数以某一种方式被任何一个外部函数作用域访问时,一个闭包就产生了。