嵌套函数内的回调
Callback inside nested function
我想理解这段代码
我用下面的代码简化了它,并试图理解如何使用回调函数。
function test(text, callback) {
function test2() {
callback(text);
}
}
用
命名test('sometext', function(response) {
console.log(response);
});
但是test2从来没有被调用过。
我如何用这个回调调用test2 ?
您需要呼叫text2
。你现在要做的就是定义它。有很多方法可以做到这一点。最简单的方法是在函数所在的位置调用该函数:
function test(text, callback) {
(function test2() {
callback(text);
})();
}
注意定义末尾的();
和它周围的圆括号。这将在test
运行时调用test2
。
另一种方法是在定义它之后调用它:
function test(text, callback) {
function test2() {
callback(text);
}
test2();
}
或者,您可以使用test
作为test2
的工厂,并返回它并在以后的日期调用它:
function test(text, callback) {
return function test2() {
callback(text);
}
}
var f = test('logged', console.log);
f();
在你链接到的例子中,我不清楚回调是如何被调用的,因为它看起来不像getTokenAndXhr
被调用过。也许是chrome浏览器中发生了一些神奇的事情,通过某种反射来调用它。
永远不调用test2,只声明它。显式执行:
function test(text, callback) {
function test2() {
callback(text);
}
test2();
}
或者因为从功能上讲没有理由像这样声明一个作用域函数,所以只需触发回调:
function test(text, callback) {
callback(text);
}
您必须实际调用test2
。
可以在test
中直接调用它。您可以返回test2
,然后稍后调用该返回值。等。
相关文章:
- JavaScript回调函数
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- 如何正确地将参数传递给RequireJS回调函数
- 回调函数在python代码中离线
- 从AJAX回调函数中分离数据
- 赋值后的回调函数
- 如何在javascript回调函数中返回多个变量
- 函数表达式,返回回调函数
- 等待回调函数执行
- JavaScript回调函数和Google Feed API
- 如何从ajax成功回调函数中读取javascript变量
- 正在保存JavaScript内部回调函数中的值
- 有没有什么方法可以停止Jquery中的animate(也可以停止完整的回调函数)
- 如何在javascript中添加带有回调函数的按钮点击事件作为window.conf
- 在Golang回调函数中启用CORS
- 在初始函数完成之前调用回调函数
- jQuery Mobile:如何在$.Mobile.changePage之前运行回调函数
- 即使使用回调函数也无法返回值
- 为什么prototypjs观察到回调函数有绑定