gpt4 book ai didi

javascript - 检测变量是否已在赋值中使用

转载 作者:行者123 更新时间:2023-11-28 11:43:16 24 4
gpt4 key购买 nike

我正在开发一个动态表单,其中定义的单元格可以:

  • 包含用户直接输入的值
  • 定义为公式(禁止用户输入)。

我需要一种方法来向用户提供提示,突出显示他/她必须填写的单元格才能获得有效的表单。

在其他作品中我可以有

cellA -> 用户输入cellB -> 用户输入单元格 C -> 公式 = 单元格 A + 单元格 BcellA 和 cellB 是必需的(突出显示)。这个案子很容易处理。

我还可以有更复杂的公式,称之为脚本。例如

cellC =
if(cellD == true)
{
cellC = cellA;
}
else
{
cellC = cellB;
}

我想知道在 javascript 中是否可以理解变量 cellA 和 cellB 是否已在任何作业中用作正确的部分。

最佳答案

I'm wondering if in javascript it would be possible to understand whether the vars cellA and cellB have been used as a right part in any assignment.

不,你不能挂接到这样读取的变量

不过,您可以将它们设置为对象的访问器属性,这将为您提供一种实现此目的的方法:

const used = { a: false, b: false, c: false};
const values = { };
const cells = {
get a() {
used.a = true;
return values.a;
},
set a(value) {
values.a = value;
},

get b() {
used.b = true;
return values.b;
},
set b(value) {
values.b = value;
},

get c() {
used.c = true;
return values.c;
},
set c(value) {
values.c = value;
}
};

// You'd only give `cells` to the code doing this, so it doesn' thave
// access to `used` or `values`.
cells.a = 2;
cells.b = 21;
const result = cells.a * cells.b;
console.log("result: " + result);
console.log("a used? " + used.a);
console.log("b used? " + used.b);
console.log("c used? " + used.c);

或者,您可以使用 Proxy 执行类似的操作.

或者,如果您不担心其他代码可以访问标志和值,则可以将它们存储在对象本身上。 (或者使用类实例和 private fields ,它们现在正在 JavaScript 引擎中实现......)

关于javascript - 检测变量是否已在赋值中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59882431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com