1. 程式人生 > >JavaScript instanceof 運算子深入剖析(實戰總結)

JavaScript instanceof 運算子深入剖析(實戰總結)

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/