Javascript load()函数如何允许用户提供回调?
在javascript中,库/框架非常流行让我们为数据的后处理定义回调函数 例如 我想知道load()函数是如何让用户提供回调的Javascript load()函数如何允许用户提供回调?,javascript,Javascript,在javascript中,库/框架非常流行让我们为数据的后处理定义回调函数 例如 我想知道load()函数是如何让用户提供回调的 有好的教程吗?函数与普通类型一样,可以作为参数传递: function load(param1, callback) { // call the callback parameter one second later setTimeout(function() { callback(param1); }, 1000); } 嗯
有好的教程吗?函数与普通类型一样,可以作为参数传递:
function load(param1, callback) {
// call the callback parameter one second later
setTimeout(function() {
callback(param1);
}, 1000);
}
嗯,
load
函数可以如下所示:
function load(arg, callback) {
var element = { name: "foo " + arg }; // something to pass
if (typeof callback == 'function') {
callback(element);
}
}
通过typeof
检查,我们确保回调参数是一个我们可以调用的对象,一个函数
那么你的例子是:
load("5", function(element) {
alert(element.name); // Will show `"foo 5"`.
});
在JavasScript中,函数是一级对象。这几乎意味着它们的行为类似于其他内置类型。您可以将它们分配给变量,将它们传递给函数,等等 本文是一个有用的链接,解释了作为一级对象的函数如何在JavaScript中工作: Joel Spolsky对在JavaScript中将函数用作第一类对象的一些有趣的事情/方法进行了详细而有趣的解释: 最后,由于它们是第一类对象,函数可以很容易地接受其他函数作为参数:
var load = function(callback) {
// load something here
callback();
}
需要注意的要点:
可以为此
。在这种情况下,如果在回调实现中使用null
,那么它将指向这个
对象全局
实际上是回调方法所需参数的JavaScriptargumentArray
Array
function load(arg, callback) {
var element = { name: "foo " + arg }; // something to pass
if (typeof callback == 'function') {
callback(element);
}
}
load("5", function(element) {
alert(element.name); // Will show `"foo 5"`.
});
var load = function(callback) {
// load something here
callback();
}
function(callback,argumentArray) {
var result = callback.apply(this,argumentArray);
}