gpt4 book ai didi

javascript - javascript 中的匿名函数和空返回对象

转载 作者:行者123 更新时间:2023-11-30 10:39:47 24 4
gpt4 key购买 nike

下面是一个将图片预加载到页面上的函数的源代码,作者添加了一些注释来解释代码的工作原理,但我仍然没有完全理解它。具体来说,他声称该函数的返回值是一个空对象,带有调用预定义匿名函数“postaction()”的“done()”方法。此代码的用户是否应该将他/她自己的代码输入到第 2 行的空后操作函数中?如果这是它的工作原理,那么返回对象中的“postaction=f || postaction”是做什么的?

源代码:

function preloadimages(arr){
var newimages=[], loadedimages=0
var postaction=function(){}
var arr=(typeof arr!="object")? [arr] : arr
function imageloadpost(){
loadedimages++
if (loadedimages==arr.length){
postaction(newimages) //call postaction and pass in newimages array as parameter
}
}
for (var i=0; i<arr.length; i++){
newimages[i]=new Image()
newimages[i].src=arr[i]
newimages[i].onload=function(){
imageloadpost()
}
newimages[i].onerror=function(){
imageloadpost()
}
}
return { //return blank object with done() method
done:function(f){
postaction=f || postaction
//remember user defined callback functions to be called when images load
}
}
}

作者页面链接:http://www.javascriptkit.com/javatutors/preloadimagesplus.shtml

最佳答案

您可以输入自己的 postaction 函数,尽管它不是您可能期望的回调函数。

但是,它返回一个对象,其中包含一个 done 函数。

如果你这样做。喜欢

 preloadimages().done(function () {
console.log('done')
});

你的功能将被执行。如果你不提供 fnction 作为 done 的参数,默认的 postaction 将被调用并且什么都不做,因为它是一个空函数

关于javascript - javascript 中的匿名函数和空返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11760808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com