看圖之前我們首先來了解幾個物件原型的基本知識:
例子:function fn() {}// fn為建構函式
var f1 = new fn();//f1是fn建構函式建立出來的物件
建構函式的prototype屬性值就是物件原型。(fn.prototype就是物件的原型)
建構函式的prototype屬性值的型別就是物件 typeof fn.prototype===object.
物件原型中的constructor屬性指向建構函式 (fn.prototype.constructor===fn)
物件的__proto__屬性值就是物件的原型。(f1.__proto__就是物件原型)
fn.prototype===f1.__proto__ 其實它們兩個就是同乙個物件---物件的原型。
所有fn.prototype.__proto__===object.prototype
typeof object.prototype ===object。
object.prototype.__proto__===null。
我討論原型就是指的物件與原型物件之間的關係。所以原型鏈也稱之為物件鏈。
有了以上的基礎知識,下面的原型煉圖你就可以看明白了。
所以物件f1的原型鏈:f1.__proto__---->fn.prototype.__proto__----->object.prototype.__prototype__---->null
區塊鏈結構
位元幣是乙個專用資料庫,它只儲存一種型別的資料記錄 交易,例如 張三轉給李四幾個幣,或者李四轉給王五幾個幣 一旦涉及到資金,大家都會變得慎重了。因此交易記錄最好在技術上可以保證 是不能篡改的,這樣出了問題可以翻翻老賬,這就要求賬本必須值得信賴。位元幣採用一種特殊的資料結構區塊鏈 blockchain...
使用offsetof編寫鏈結構
在c中,要實現乙個通用的雙向鍊錶,我們一般的做法是這樣定義節點結構 struct node 也就是資料和節點是分開的,資料單獨指向一塊記憶體,這樣在記憶體上有點不爽,我們希望資料和節點鏈域是緊密存放的,這樣乙個節點記憶體只分配一次,可是c中沒有泛型,怎麼讓不同資料型別與鏈域緊密存放呢?offseto...
詳解python實現簡單區塊鏈結構
位元幣從誕生到現在已經10年了,最近接觸到了區塊鏈相關的技術,為了揭開其背後的神秘面紗,我就從頭開始構建乙個簡單的區塊鏈。從技術上來看 區塊是一種記錄交易的資料結構,反映了一筆交易的資金流向。系統中已經達成的交易的區塊連線在一起形成了一條主鏈,所有參與計算的節點都記錄了主鏈或主鏈的一部分。位元幣內部...