我想這樣做:擴展JS Boolean.prototype失敗
a = false;
a.toggle();
console.log(a) // -> true;
所以我創造了這個:
Boolean.prototype.toggle = function(){this = !this; return this;}
但它只是不工作。我也嘗試了很多類似的版本,但也總是失敗。
我懷疑Boolean
對象有沒有setter方法@其prototype
。但可能你們可以幫助解決這個問題。
在此先感謝。
(請不要回答「爲什麼a = !a
犯規好的嗎?」)
JavaScript的原語是不變的(同大多數語言)。這不會按照你想要的方式工作。 – 2012-04-23 14:55:31
我不是要問爲什麼'A = A'沒有對你有好處!;我要*告訴*你這是正確的做法!在爲語言添加無意義的擴展之前,請考慮其他程序員。 **每個**程序員都會明白'!a'的功能! – Jamiec 2012-04-23 14:57:51
Boolean.prototype.toggle已被Chrome接受。而其在對象,但它沒有做預期的功能:■ – zsitro 2012-04-23 14:59:11