我正在努力理解 this code
我用下面的代码简化了它,并试图了解如何将此函数与回调一起使用。
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 浏览器中发生了一些魔法,通过某种反射调用它。
关于javascript - 嵌套函数内的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24279460/