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

如何将JavaScript对象属性值赋值给自身另一属性?代码问题求解

解决对象属性间赋值的问题

你遇到的问题很常见——在对象字面量初始化的时候,this并不指向当前正在创建的对象,而是指向当前的上下文(比如浏览器里的全局window对象,或者Node.js里的global),所以this.a根本拿不到你定义的obj.a,自然返回undefined。

要实现把a的值赋值给b,用函数的方式确实可行,这里给你几种常用方案:

方案1:使用getter属性(动态关联)

这是最符合你“在对象中用函数实现”需求的方式,当你访问obj.b时,会自动触发这个getter函数,此时this指向当前对象,就能拿到a的值:

var obj = {
  a: 2,
  get b() {
    return this.a;
  }
};
console.log(obj.b); // 输出2

而且这个方法是动态的,如果后续你修改obj.a = 3,再访问obj.b会自动返回3,保持和a的同步。

方案2:创建对象后手动赋值(静态赋值)

如果不需要b跟着a变化,只是一次性把a的值赋给b,可以先创建对象,再单独赋值:

var obj = { a: 2 };
obj.b = obj.a;
console.log(obj.b); // 输出2

方案3:用工厂函数创建对象

通过函数封装对象的创建过程,在函数内部可以直接访问对象的属性并赋值:

function createMyObj() {
  const obj = { a: 2 };
  obj.b = obj.a;
  return obj;
}
var obj = createMyObj();
console.log(obj.b); // 输出2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:18:06