Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

closure #3

Open
heyLiup opened this issue Oct 31, 2017 · 0 comments
Open

closure #3

heyLiup opened this issue Oct 31, 2017 · 0 comments

Comments

@heyLiup
Copy link
Owner

heyLiup commented Oct 31, 2017

闭包(closure)

  • 从技术角度上来说,所有的函数都是闭包?
    • 闭包就是说那些能够访问自由变量的函数
    • 自由变量是指在函数中使用的,但既不是函数参数也不是函数的局部变量的变量
  • 从实际角度来说
    • 即使创建他的上下文已经销毁,他依然存在(比如,内部函数从父函数中返回)
    • 在代码中引用了自由变量
  • 用阮大神的话来说
    闭包就是能够读取其他函数内部变量的函数。
    由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,
    因此可以把闭包简单理解成"定义在一个函数内部的函数"。
    所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁
    
  • 闭包的用处?
    • 可以读取函数内部的变量
    • 让这些变量的值始终保持在内存中
  • let关键字
    • 在for循环中,let关键字将for循环的块隐士的声明为块级作用域,而 for 循环头部的 let 不仅将 i 绑定到了 for 循环的块中,事实上它将其重新绑定到了循环的每一个迭代中,确保使用上一个循环迭代结束时的值重新进行赋值。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant