[英]Chrome console.log contradictions
我有一堂簡單的課
function TrueNinja() {
this.vanish = function() { return this; };
}
由此創建一個新對象
var someNinja = new TrueNinja();
當我在Chrome中執行以下操作時,我得到兩個不同的輸出
console.log(someNinja instanceof TrueNinja); // i get true
console.log("someNinja: " + someNinja instanceof TrueNinja); //i get false
為什么?? :-(第一條語句是正確的輸出,因為someNinja是TrueNinja的一個實例...但是為什么在下一條語句中我會得到假?
這是由於運算符的優先級, +
在instanceof
之前先求值。
您需要這樣給:
"someNinja: " + (someNinja instanceof TrueNinja);
原因是,整個"someNinja: " + someNinja
與TrueNinja
進行了TrueNinja
。
因此,通過這種方式,它與"someNinja: " + someNinja
與TrueNinja
了TrueNinja
,其中,前者是string
而后者是TrueNinja
。 希望清楚! :)
實際原因是由於運算符優先級,其中+
出現在instanceof
之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.