instanceof 運算操作符用於檢測建構函式的 prototype 屬性是否出現在某個例項物件的原型鏈上。
object instanceof constructor
object
某個例項物件
constructor 某個建構函式
instanceof 運算子用來檢測constructor.prototype 是否存在於引數object的原型鏈上。
// 定義建構函式
function c(){}
function d(){}
var o = new c();
o instanceof c; // true,因為 object.getprototypeof(o) === c.prototype
o instanceof d; // false,因為 d.prototype 不在 o 的原型鏈上
o instanceof object; // true,因為 object.prototype.isprototypeof(o) 返回 true
c.prototype instanceof object // true,同上
c.prototype = {};
var o2 = new c();
o2 instanceof c; // true
o instanceof c; // false,c.prototype 指向了乙個空物件,這個空物件不在 o 的原型鏈上.
d.prototype = new c(); // 繼承
var o3 = new d();
o3 instanceof d; // true
o3 instanceof c; // true 因為 c.prototype 現在在 o3 的原型鏈上
使用instanceof來檢測某個物件是否是陣列的例項,該檢測會返回乙個布林型(boolean),如果是陣列的話,返回true,否則的話返回false;
//陣列
console.log( instanceof array); // true
//正則
console.log(/\d+/g instanceof array); // false
typeof與instanceof操作符
typeof與instanceof都是用來檢測變數型別的,不同的是,typeof用來檢測基本資料型別,instanceof用來檢測引用型別 一 typeof操作符 typeof操作符是確定乙個變數是字串 數值 布林值 還是undefined的最佳工具 對乙個值使用typeof操作符可能返回下列某個字...
instanceof 操作符的實現原理
instanceof主要作用就是判斷乙個例項是否屬於某種型別 let dog function let tidy new dog tidy instanceof dog true原理大概如下 function wonderfulinstanceof instance,constructorfn if...
位運算操作符
與運算,二元操作符,對兩個操作員的每個二進位制位進行與運算,運算規則為 1 1 1 1 0 0 0 1 0 0 0 0 異或運算,二元操作符,對兩個操作員的每個二進位制位進行異或運算,運算規則為 1 1 0 1 0 1 0 1 1 0 0 0 或運算,二元操作符,對兩個操作員的每個二進位制位或運算,...