instanceof 運算操作符

2021-09-29 01:12:47 字數 1193 閱讀 3535

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 或運算,二元操作符,對兩個操作員的每個二進位制位或運算,...