gpt4 book ai didi

JavaScript : Onload with reference to class property

转载 作者:行者123 更新时间:2023-12-03 02:58:08 25 4
gpt4 key购买 nike

我正在尝试预加载图像,并同时获取它们的宽度和高度。要获取图像的高度和宽度,我需要使用 onload 方法。但我无法理解如何获取对图像和类对象(我从中调用)的引用。当我发现图像太小时,我需要将其从类属性内的数组中删除。

这是我的代码。

class Estate {
this.jsonData;

constructor() {
this.cachePresImages();
}

cachePresImages() {
let theImages = this.jsonData.images;
for (let i=0; i < theImages.length; i++){
let image = new Image();
image.src = theImages[i].url;
let that = this;
image.onload = (that) => {
console.log(that);
console.log(that.jsonData.images);
console.log(this.width);
if ( this.naturalHeight < 10000 || this.naturalWidth < 100){
that.jsonData.images[i].splice(i,1);
}
return true;
};
};
}
}

上面的代码会将其视为未定义,并抛出此错误消息:“无法在 Image.image.onload 读取未定义的属性“jsonData””

最佳答案

简单地省略事件处理程序中的参数,这会覆盖您的闭包。

关于JavaScript : Onload with reference to class property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47534645/

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