0

我想做这个:

a = false;

a.toggle();

console.log(a) // -> true;

所以我创建了这个:

Boolean.prototype.toggle = function (){this = !this; return this;}

但它只是不起作用。我也尝试了许多类似的版本,包括 valueOf 之类的,但总是失败。

我怀疑Booleanobject 没有 setter 方法 @ its prototype。但也许你们可以帮助解决这个问题。

提前致谢。

(请不要回答“为什么a = !a不适合你?”)

4

1 回答 1

3

首先,你永远不能this在 javascript 中分配,所以this = !this不会工作。

其次,布尔对象似乎没有设置器。它有valueOf()而且它有toString()

这是我能想到的最接近的:

Boolean.prototype.toggle = function (){return !this.valueOf();}

var a = false;
var b = a.toggle();

console.log(b) // -> true;​
于 2012-04-23T14:55:27.687 回答