jjzjj

javascript - !! bool 值表达式

我在阅读JohnResig的SecretsofJavaScriptNinja时看到了这段代码:functionNinja(){this.swung=false;//Shouldreturntruethis.swingSword=function(){return!!this.swung;};}Iknow!!用于将表达式转换为bool值。但我的问题是他为什么使用:return!!this.swung;这不是多余的吗,因为swung已经是一个bool变量,还是我遗漏了什么?顺便说一句,这里有完整的相关代码以防万一:functionNinja(){this.swung=false;//Sho

JavaScript:通过原型(prototype)进行属性分配

我很难理解以下两组代码的区别。原码来自thefamousNinjatutorial我为自己简化了一点。问题:我想我了解CodeA的工作原理。Ninja.prototype.swung=false将一个新属性分配给functionNinja(),因此ninjiaA.swung的计算结果为false。但是,在CodeB中,当我们一开始就用this.swung=true声明functionNinja()时,后面赋值的Ninja.prototype.swung=false不会生效,并且ninjaA.swung仍然需要评估为true。我不明白为什么这个后来的分配在CodeB中不起作用。有人可以启