You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中能否从字典内部的项引用该字典本身?

图片加载完成后修改对应数组项的实现方案

核心实现逻辑是给Image实例绑定加载完成事件,利用对象引用特性直接修改对应数组项,修正后的代码及注意事项如下:

images.push({
      image:new Image(),
      x:100,
      y:100,
      width:100,
      height:100,
      card:"2♠",
      visible:true
})

let imageItem = images[i]; 
let imgElement = imageItem.image;

// 先绑定加载完成事件,再赋值src避免漏触发
imgElement.onload = function() {
  // 此处直接修改imageItem的属性,数组对应项会同步更新
  // 示例:更新为图片真实宽高
  imageItem.width = this.naturalWidth;
  imageItem.height = this.naturalHeight;
  // 其他自定义修改逻辑写在这里即可
}

// 可选:添加加载异常处理
imgElement.onerror = function() {
  imageItem.loadError = true;
}

// 赋值src触发图片加载
imgElement.src = "你的图片资源地址";

注意事项:

  • 必须先绑定onload/onerror事件,再给图片赋值src,否则如果图片已被浏览器缓存,会直接触发加载完成事件,导致回调未执行
  • 数组中的项是引用类型,直接修改imageItem的属性,数组内对应项的数据会同步更新,不需要额外操作数组
  • 原代码存在函数名大小写不匹配的问题,调用的myFunction和定义的myfunction大小写不一致,JavaScript区分大小写,会导致运行报错,需要统一命名

内容的提问来源于stack exchange,提问作者kroojel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:42:02