我想这样做:扩展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