4

以下适用于任何布尔变量,但我在 javascript 中编写了一个小函数,它反转给定复选框中的检查,变得无聊,想知道我能压缩多少。

开始于:

checkbox = document.getElementById('checkbox');
checkbox.checked = (checkbox.checked ? false : true);

然后搬到

checkbox = document.getElementById('checkbox');
checkbox.checked = !(checkbox.checked);

接着

document.getElementById('checkbox').checked ^= 1;

我想不出一个合乎逻辑的一元方法,比如

!(document.getElementById('checkbox').checked);

但我发现 -- 有效,虽然 ++ 没有(绝对值?)

document.getElementById('checkbox').checked--;

我也不确定 js(或任何语言,就此而言)是否支持对等式左侧变量的一些隐式引用,如:

document.getElementById('checkbox').checked = !(left.side);

通常有 1000 种方法可以做同样的事情。还有其他巧妙的方法吗?出于任何原因(或从语言到语言最兼容)是否有“最佳”方法?

4

1 回答 1

3

我总是使用类似的东西this.checked = !this.checked,因为它是我所知道的最合乎逻辑和可读性的解决方案。此外,它适用于我使用的任何语言。

于 2013-04-09T21:31:52.203 回答