web前端:理解js原型鏈
工具/材料
javascript
操作方法
學習原型鏈之前我們先認識一下構造函數,代碼如下:
function S() {
= 'xxx';
= function() { () }
}
var s1 = new S();
其中,s1是S的實例,s1的__proto__(大家先不用管__proto__屬性,後續會講到)中有一個constructor(構造函數)屬性,該屬性指向S。
在這裏,大家可以記住兩點:
1.s1是構造函數S的實例;
2.s1.__proto__tructor===S 也可以寫成 tructor===S;
接下來我們來看下一段代碼:
function S2() {}
= 'XXX';
= function() {
();
}
var s2 = new S2();
var s3 = new S2();
(ame === ame);//true
(s2.__proto__===otype);//true
這一段代碼中我們可以看到一個新屬性——prototype,這是什麼呢,其實這就是構造函數S2的原型對象,每個對象都有__proto__屬性,但是隻有函數對象才有prototype屬性。而s2是構造函數S2的實例,而s2.__proto__指向的就是S2的原型對象,即s2.__proto__===otype。得到一個結論,實例的__proto__屬性指向的就是其構造函數的原型對象。
繼續上一步的代碼,我們添加代碼繼續調試:
(s2.__proto__);//返回S2的原型對象
(otype);//返回S2的原型對象
(s2.__proto__.__proto__);//返回Object對象
(otype.__proto__);//返回Object對象
(s2.__proto__.__proto__.__proto__);//返回null
(otype.__proto__.__proto__);//返回null
其實,S2的原型對象上還有原型對象,因為S2的原型對象也相當於只是Object對象的一個實例。
在這裏我給大家畫了一張圖,便於大家理解原型鏈。
特別提示
碼子不易,小編如有説得不對的地方,望大家指點包含,謝謝
-
EXCEL如何統計個數 多個方法
excel在我們日常工作中使用較為廣泛,那麼excel中如何統計個數呢?下面小編來告訴大家。操作方法(01)首先,我們打開我們電腦上面的excel,然後在表格中隨意輸入一些數字;(02)最簡單的方法就是選中區域,我們任意選擇一個含有文字的區域;(03)在表格的右下方我們可以看到excel已經...
-
如何更新word目錄
word的目錄設置好以後發生了改變要怎麼辦,更新一下就好了,怎麼更新呢?讓小編教給你操作指南。操作方法(01)打開一個已經生成好目錄的word文檔。(02)用鼠標左鍵單擊目錄後,整個目錄被複選。(03)在目錄上點擊鼠標右鍵,在右鍵菜單中選擇更新域選項。(04)如果只是增加了內容或更...
-
怎樣給針式打印機換色帶
在我們使用針式打印機的過程中,色帶用完了怎麼辦?該如何更換?下面小編帶大家一起看看。操作方法(01)打開機蓋。(02)將圖示裝置推到中間來。(03)將新色帶對準安裝位置。(04)對準後將新色帶按下去。(05)將色帶上固定打印頭的裝置放在打印頭下,且對準打印頭。(06)對準槽孔後將裝置...
-
實例講解Flash中如何製作旋轉球體動畫
Flash是一款專門用來製作動畫的軟件工具,在網上就有很多的破解版本,下載破解綠色版本的安裝包比較容易安裝。Flash的界面簡潔,功能齊全。現在,我們用實際例子看看怎麼在Flash中製作旋轉球體動畫吧。操作方法(01)新建文檔雙擊桌面上的fla圖標,打開軟件。在動畫軟件菜單...