JavaScript instanceof 運算子深入剖析(實戰總結)
阿新 • • 發佈:2018-11-12
instanceof 運算子簡介
在 JavaScript 中,判斷一個變數的型別嚐嚐會用 typeof 運算子,在使用 typeof 運算子時採用引用型別儲存值會出現一個問題,無論引用的是什麼型別的物件,它都返回 “object”。ECMAScript 引入了另一個 Java 運算子 instanceof 來解決這個問題。instanceof 運算子與 typeof 運算子相似,用於識別正在處理的物件的型別。與 typeof 方法不同的是,instanceof 方法要求開發者明確地確認物件為某特定型別。例如:
清單 1. instanceof 示例
1
2
var oStringObject = new String(“hello world”);
console.log(oStringObject instanceof String); // 輸出 “true”
這段程式碼問的是“變數 oStringObject 是否為 String 物件的例項?”oStringObject 的確是 String 物件的例項,因此結果是"true"。儘管不像 typeof 方法那樣靈活,但是在 typeof 方法返回 “object” 的情況下,instanceof 方法還是很有用的。
instanceof 總結:
A物件 instanceof B物件
instanceof最恰當的解釋:判斷A物件原型鏈上 是否有B物件原型 !!! function Person() {} var person = new Person(); console.log( person instanceof Person ) //輸出true,因為person的原型鏈上有Person原型! console.log( person instanceof Object ) //輸出true,因為person的原型鏈上有Object原型!
參考網站:https://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/