javascript instanceof分析javascript
function instance_of(L, R) {//L 表示左表達式,R 表示右表達式 var O = R.prototype;// 取 R 的顯示原型 L = L.__proto__;// 取 L 的隱式原型 while (true) { if (L === null) return false; if (O === L)// 這裏重點:當 O 嚴格等於 L 時,返回 true return true; L = L.__proto__; } }轉自:http://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/java
(感謝做者分享)web
因而可知 inA instanceof funcB 比較的是prototype
實例inA的隱式原型鏈的對象跟funcB的原型比較,所以code
function Myobj(){} var obj1 = new Myobj(); Myobj.prototype = { constructor:Myobj } var obj2 = new Myobj(); console.log(obj1 instanceof Myobj);//false console.log(obj2 instanceof Myobj);//true console.log(obj1.constructor === obj2.constructor);//true console.log(obj1.constructor === obj2.constructor);//true結果一目瞭然對象