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

如何在同一JavaScript对象内部引用自身属性?

解决对象属性自动关联的问题

你遇到的问题核心是对象字面量初始化时,this不指向当前正在创建的对象,所以访问this.entry会返回undefined,而且你写的对象内函数语法也有误,自然达不到预期效果。下面给你几个实用的解决方案:

方案1:先定义变量复用(简单直接)

先把entry单独定义成变量,再在对象里重复使用,避免手动重复输入:

const entry = "001";
const test = [
  {
    entry: entry,
    name: "Name",
    image: `link/${entry}`,
    types: ["type1"],
  },
];

方案2:工厂函数批量创建(适合多对象场景)

如果需要创建多个结构类似的对象,用工厂函数可以批量处理,一次传参自动生成关联的image:

function createItem(entry, name, types) {
  return {
    entry,
    name,
    image: `link/${entry}`,
    types,
  };
}

// 批量生成对象
const test = [
  createItem("001", "Name", ["type1"]),
  createItem("002", "Another Name", ["type2", "type3"]),
];

方案3:getter属性实现动态关联(支持后续更新)

如果希望image能随着entry的修改自动同步,用对象的getter属性,每次访问image时都会自动计算最新值:

const test = [
  {
    entry: "001",
    name: "Name",
    types: ["type1"],
    // 定义getter,访问时自动执行
    get image() {
      return `link/${this.entry}`;
    },
  },
];

// 访问image
console.log(test[0].image); // 输出 link/001
// 修改entry后,image自动更新
test[0].entry = "002";
console.log(test[0].image); // 输出 link/002

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 06:17:06