首页 > 解决方案 > 使用 setter 方法更新现有对象值

问题描述

我有一个带有 setter 方法模型的对象:

var obj = {
   set model(object) {
   //method's logic
   }
}

我用以下值更新 obj:

obj = {x:10, y: 20, p: 15};

现在对象看起来像:

obj = {
  x:10, 
  y: 20, 
  p: 15
  set model(object){
  //method logic
  }
  };

请给我一个提示,如何使用 setter 方法更新对象的现有值并处理一些数学运算。例如,我调用 setter 方法并传递值:

obj.model = { x: { value: 33, operation: '*' },
z: { value: 75, operation: '+' }, 
p: { value: 4, operation: '%' } };

结果,它应该返回:

console.log(obj); // -> {x:330, y: 20, z: 75, p: 3}

标签: javascriptobjectsetter

解决方案


obj = {x:10, y: 20, p: 15};不是将参数“传递”给对象 - 这是对obj自身的赋值(您正在覆盖以前的定义obj)!

尝试代替(就像你在下面做几行一样):

obj.model = {x:10, y: 20, p: 15};

推荐阅读