- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我理解 JavaScript 中闭包的作用,但我不明白它“如何”记住。
使用 YDKJS 书中的示例:
function foo() {
var a = 2;
function bar() {
console.log( a );
}
return bar;
}
var baz = foo();
baz()//Prints 2
我知道 bar
正在被返回,并且 bar 可以访问包含 a
的词法范围。我们可以使用 foo() 的返回值来创建多个项目,这太棒了!然而幕后究竟发生了什么。
是对随函数返回的原始变量的引用......还是某个隐藏的副本?到底发生了什么?
最佳答案
Is a reference to the original variable getting returned with the function....or some copy that's hidden? What's actually going on?
本质上是的。返回的函数带有其封闭范围,其中包括该范围内的变量。它不是这些变量的副本——它是范围本身。这就是闭包的本质。
关于javascript - 闭包究竟如何记住它的词法范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44014431/
Feel free to skip straight to TL/DR if you're not interested in details of the question 简短的序言: 我最近决定
我一直在阅读 A Tour of Go学习Go-Lang到目前为止一切顺利。 我目前在 Struct Fields类(class),这是右侧的示例代码: package main import "fm
Last time I got confused顺便说一下PowerShell急切地展开集合,基思总结了它的启发式如下: Putting the results (an array) within a
我是一名优秀的程序员,十分优秀!