【发布时间】:2011-10-06 06:45:02
【问题描述】:
我想用一个原型函数来扩展布尔对象,它可以反转它的当前值。到目前为止,我一直在做这样的事情:
var bool = true;
bool = !bool;
console.log(bool); // false
我扩展布尔对象的尝试没有结果。这就是我得到的结果:
Boolean.prototype.invert = function() {
return !this.valueOf();
}
var bool = true;
bool = bool.invert();
console.log(bool); // false
接近,但不够接近。我正在寻找以下方面的解决方案:
var bool = true;
bool.invert();
console.log(bool); // false
是的,我知道,扩展内置对象通常被认为是个坏主意。请让我们改天再讨论。
【问题讨论】:
-
重点是什么,除了你试图改变状态之外,除了试图避免简单的重新分配之外,这样做的目的是什么:
bool = !bool;? -
也许我应该重新表述这个问题:如何使用原型改变对象的状态...谢谢。
标签: javascript boolean prototype-programming