js通用函数,用于计算和赋值对象值?

js common function which calculates and assign to object values?

提问人:xxxhomie21 提问时间:8/5/2022 最后编辑:DecPKxxxhomie21 更新时间:8/6/2022 访问量:41

问:

我试图实现的目标的例子

我想在 react 中创建一个对象,它将使用此函数和“this”关键字从其他键中计算一个键值,以便我可以将此函数与许多输入字段对象动态地一起使用。

func = function (c) {
    return this.a + this.b + c;
};

obj1 = {
    a: 1,
    b: 2,
    value: func(5),
};

obj2 = [
    { a: 2, b: 3, value: func(6) },
    {
        a: 4,
        b: 5,
        value: func(7),
    },
];

// expected result
console.log(obj1.value); // 8
console.log(obj2[0].value); // 16

javascript reactjs 对象 ecmascript-6 这个

评论

1赞 VLAZ 8/5/2022
相关:“this”关键字如何工作,何时应使用?

答:

-1赞 Konrad 8/5/2022 #1

目前被调用,设置为 object,因为要在其中使用它的对象尚不存在。functhiswindow

您可以尝试从func

const func = function(c) {
  return function() {
    return this.a + this.b + c
  }
}

const obj1 = {
  a: 1,
  b: 2,
  value: func(5),
}

const obj2 = [{
    a: 2,
    b: 3,
    value: func(6)
  },
  {
    a: 4,
    b: 5,
    value: func(7)
  }
]

// expected result
console.log(obj1.value()) // 8
console.log(obj2[0].value()) // 11

评论

0赞 xxxhomie21 8/5/2022
我认为这在运行时不起作用。
0赞 Konrad 8/5/2022
@xxxhomie21我不明白你的评论
0赞 xxxhomie21 8/5/2022
value 键不能是函数,它必须是函数的返回值。我将其作为字符串属性传递给文本组件。我不想在组件中调用它,因为它是一个通用组件。
0赞 Konrad 8/5/2022
没有类或代理就无法完成
0赞 xxxhomie21 8/5/2022
好的,谢谢,我想知道这是否可能。
0赞 Felix Kling 8/6/2022 #2

我想最简单的解决方案是将其翻转过来:将对象传递给函数,让它添加属性并返回完全相同的对象:

const func = function (obj, c) {
  obj.value = obj.a + obj.b + c;
  return obj;
};

const obj1 = func({
    a: 1,
    b: 2,
}, 5);

const obj2 = [
    func({ a: 2, b: 3 }, 6),
    func({
        a: 4,
        b: 5,
    }, 7),
];

// expected result
console.log(obj1.value); // 8
console.log(obj2[0].value); // 16

(不知道第二个例子会如何导致 16)