與原型相關(guān)的那些事兒

2018-7-30    seo達(dá)人

如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

寫在前面: 
1、什么是對(duì)象? 
對(duì)象就是屬性的集合; 
2、對(duì)象與函數(shù)的關(guān)系? 
對(duì)象都可以看做是由構(gòu)造函數(shù)Object實(shí)例化生成的; 
函數(shù)都可以看做是由構(gòu)造函數(shù)Function實(shí)例化生成的; 
構(gòu)造函數(shù)Object也是由構(gòu)造函數(shù)Function生成的;

1、原型prototype

如果讓用簡(jiǎn)單的幾句話說一下什么是原型,或者給原型下個(gè)定義,我覺得還是有點(diǎn)困難的,困難之處在于即使說了之后,對(duì)于聽的人來說,估計(jì)也是一頭霧水。不過,關(guān)于原型的一些基本的東西還是要說明的,這些基本的東西差不多就可以構(gòu)成一個(gè)對(duì)原型的理解。首先,原型是函數(shù)才有的一個(gè)屬性;其次,原型就是一個(gè)對(duì)象,我們可以給它添加屬性或方法;最后,原型的作用是實(shí)現(xiàn)對(duì)象屬性的繼承。

每個(gè)對(duì)象都有一個(gè)隱藏的__proto__屬性,__proto__屬性指向創(chuàng)建該對(duì)象的函數(shù)的原型prototype;

這里寫圖片描述

每個(gè)函數(shù)都有一個(gè)prototype屬性,其prototype屬性值是一個(gè)對(duì)象;

這里寫圖片描述

這里寫圖片描述

對(duì)象是沒有prototype屬性的,函數(shù)是沒有__proto__屬性的;

通過原型prototype,可以實(shí)現(xiàn)對(duì)象屬性的繼承,即創(chuàng)建在構(gòu)造函數(shù)原型上的方法和屬性可以被所有由該構(gòu)造函數(shù)生成的實(shí)例所共享;

2、原型鏈

什么是原型鏈? 
原型鏈描述的是對(duì)象的繼承圖譜(類似于家譜圖),當(dāng)訪問一個(gè)對(duì)象的屬性的時(shí)候,會(huì)在該對(duì)象中進(jìn)行查詢,如果在該對(duì)象中沒有查詢到,則會(huì)沿著該對(duì)象的__proto__線進(jìn)行查詢,直到查詢到該屬性或者到Object.prototype,這樣層層向上查詢的線路就是該對(duì)象的原型鏈。

3、instanceof

typeof在判斷引用數(shù)據(jù)類型時(shí)只能返回object和function,不能準(zhǔn)確判斷引用數(shù)據(jù)類型時(shí)數(shù)組還是對(duì)象。而instanceof可以很好用于判斷引用數(shù)據(jù)類型。

用法: A instanceof B

instanceof是通過判斷對(duì)象A的原型鏈上是否存在B的原型來確定A的數(shù)據(jù)類型;

藍(lán)藍(lán)設(shè)計(jì)sillybuy.com )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)

日歷

鏈接

個(gè)人資料

存檔