JavaScript Object Oriented Programming: The instanceof operator

JavaScript

The instanceof operator

instanceof 允許檢查物件是否為給定的 constructor 所產生的。

function Rabbit() {}
var rabbit = new Rabbit();
console.log(rabbit instanceof Rabbit); // ture

rabbit 的 constructor 的確是 Rabbit。

When instanceof lies

當值是來自另外一個 frame 或 iframe,instanceof 這個 operator 所取得的值是不準確的。例如,一個來自另外一個 iframe 的 array。每一個 frame 或 iframe 有自己的 window 物件和其繼承關係。解法可參考 [[Class]] to differ between native objects

Summary

var arr = [];
alert(arr instanceof Array); // true
alert(arr instanceof Object); // true

Reference


這篇文章的原始位置在這裡-JavaScript Object Oriented Programming - The instanceof operator

由於部落格搬遷至此,因此在這裡放了一份,以便閱讀;部份文章片段也做了些許修改,以期提供更好的內容。

operator 運算子 javascript

Summer Tang
Sponsored
Summer Tang 一對一諮詢
Summer|TSMC 主任工程師|擁有 15 年資深 Web 架構經驗,職涯歷經跨國頂尖企業與新創。專精於高流量企業級應用開發,核心技術涵蓋微前端、效能優化、測試自動化與 SEO。曾出版多本技術著作,並多次擔任 MOPCON、WebConf 等大型技術年會講者。
了解更多 →