我正在开发一个动态表单,其中定义的单元格可以:
我需要一种向用户提供提示的方法,突出显示他/她必须填写以获得有效表单的单元格。
在其他作品中我可以
cellA -> 用户输入 cellB -> 用户输入 cellC -> 公式 = cellA + cellB cellA 和 cellB 是必需的(突出显示)。这种情况很容易处理。
我也可以有更复杂的公式,称之为脚本。例如
cellC =
if(cellD == true)
{
cellC = cellA;
}
else
{
cellC = cellB;
}
Run Code Online (Sandbox Code Playgroud)
我想知道在 javascript 中是否可以理解 vars cellA 和 cellB 是否已被用作任何分配中的正确部分。
我想知道在 javascript 中是否可以理解 vars cellA 和 cellB 是否已被用作任何分配中的正确部分。
不,你不能挂钩这样读取的变量。
但是,您可以使它们成为对象的访问器属性,这将为您提供一种方法:
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);Run Code Online (Sandbox Code Playgroud)
或者,您可以使用Proxy做类似的事情。
或者,如果您不担心其他代码可以访问这些标志和值,您可以将标志和值存储在对象本身上。(或者使用类实例和私有字段,它们现在正在 JavaScript 引擎中实现......)