javascript instanceof

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

結果一目瞭然對象

相關文章
相關標籤/搜索