javascript如何在回调中引用变量?
how does javascript reference a variable inside a callback?
如果我有一些javascript代码,比如:
Foo.init = function(options) {
Bar.set_listener('some_event', function() {
console.log(options);
});
};
,我调用Foo。init带有一些选项,比如Foo。init({whatever: 'hi'})和那个Bar。Set_listener方法接受回调并存储它,然后在稍后触发'some_event'时调用它....
console.log将打印未定义或{whatever: 'hi'} ?答案似乎是{whatever: 'hi'},但这让我很困惑。这个回调调用时如何知道如何引用传入Foo.init的选项变量?
内部函数引用外部函数中定义的状态的能力称为闭包。这是大多数允许lambdas或函数值的语言中存在的特性。
它是如何实现的值得写一篇比Stack Overflow的答案长得多的文章。但总而言之,只要存在引用外部函数的内部函数,Javascript运行时就会持久化外部函数中定义的值。
相关文章:
- 通过另一个变量引用变量名称,或从变量确定变量名称
- 如何使用字符串引用变量
- 具有计算名称的引用变量
- j查询使用引用变量
- 如何处理 React 0.12+ 中的组件引用变量和 props
- 引用变量,它执行函数,但是向变量中添加字符串,将函数作为字符串而不是值返回
- 在单例模式中引用变量的根父级
- 如何在 Debian 上通过 node.js 中的引用变量停止子进程
- 可以通过画布上的引用变量来单击函数
- 使用原型从构造函数引用变量
- JQuery引用变量带有选择器,数据错误
- 引用变量
- Javascript在对象内通过字符串引用变量名
- 如何在javascript中使用不同的本地名称来引用变量或属性
- 为什么以及如何在console.log中引用变量来修复我遇到的加载错误?
- (术语)如何引用变量中的变量
- Javascript:使用"模块模式"引用变量,有什么想法吗?
- 解引用变量的闭包有用吗?
- 动态引用变量(对象)
- 定义中的引用变量