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