簡體   English   中英

Chrome console.log矛盾

[英]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: " + someNinjaTrueNinja進行了TrueNinja

因此,通過這種方式,它與"someNinja: " + someNinjaTrueNinjaTrueNinja ,其中,前者是string而后者是TrueNinja 希望清楚! :)

實際原因是由於運算符優先級,其中+出現在instanceof之前。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM