Javascript原型鏈及instanceof原理詳解
instanceof:用來判斷實例是否是屬于某個對象,這個判斷依據(jù)是什么呢?
首先,了解一下javascript中的原型繼承的基礎(chǔ)知識:
javascript中的對象都有一個__proto__屬性,這個是對象的隱式原型,指向該對象的父對象的原型(prototype)。顯式的原型對象使用prototype,但是Object.prototype.proto=null;
判斷某個對象a是否屬于某個類A的實例,可以通過搜索原型鏈。
實例對象屬性查找順序是:實例對象內(nèi)部---->構(gòu)造函數(shù)原型鏈---->實例對象父對象的原型鏈。
//繼承機制
function A(){
}
A.prototype.name='licui';
function B(){
}
B.prototype = new A();
var a = new A();
var b = new B();
//b.name = 'hello';
console.log('A:',A);
console.log('B:',B);
console.log('a:',a);
console.log('b:',b);
console.log('A.prototype',A.prototype);
console.log('B.prototype',B.prototype);
console.log('a._proto_',a.__proto__);
console.log('b._proto_',b.__proto__);
console.log('a instanceof A:',a instanceof A);
console.log('a instanceof Object:',a instanceof Object);
console.log('b instanceof B:',b instanceof B);
console.log('b instanceof A:',b instanceof A);
console.log('b instanceof Object:',b instanceof Object);
執(zhí)行結(jié)果

constructor:是原型prototype上的屬性,實例上不具有該屬性。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實現(xiàn)的聯(lián)動菜單特效示例
這篇文章主要介紹了JavaScript實現(xiàn)的聯(lián)動菜單特效,涉及javascript事件響應(yīng)及頁面元素屬性動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-07-07
JavaScript之BOM?location對象+navigator對象+history?對象
這篇文章主要介紹了JavaScript?BOM中的?location對象、navigator對象、history?對象,下面圍繞他們的相關(guān)語法及各種資料展開文章詳細內(nèi)容,需要的小伙伴可以參考一下,希望對大家有所幫助2021-12-12
JavaScript使用高階生成器進行過濾以生成素數(shù)
生成器大家都知道是怎么一回事,但是高階生成器又是什么東西呢,下面小編就來為大家簡單介紹一下如何使用高階生成器進行過濾以生成素數(shù)吧2024-02-02
詳解CocosCreator優(yōu)化之DrawCall
這篇文章主要介紹了CocosCreator中DrawCall的優(yōu)化,想研究游戲性能的同學,一定要看一看2021-04-04

