0

私はこれをしたい:

a = false;

a.toggle();

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

だから私はこれを作成しました:

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

しかし、それはうまくいきません。valueOf などでも多くの同様のバージョンを試しましたが、常に失敗します。

Booleanオブジェクトにはセッターメソッド @ its がないと思われますprototype。しかし、皆さんがこれを手伝ってくれるかもしれません。

前もって感謝します。

a = !a(「どうしてダメなの?」と答えないでください)

4

1 に答える 1

3

まず第一にthis、javascript では決して割り当てることができないため、機能しthis = !thisません。

次に、Boolean オブジェクトにセッターがあるようには見えません。それは持っ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 に答える