原型與原型鏈的知識知多少?宜人金科帶你多角度了解

  • A+
對于很多互聯網的初學者來說,原型鏈的理解是javascript中的老大難題,可謂是相當不友好,別說是初學者,原型鏈的定義甚至對于很多工作兩三年的程序員來說,也沒能真正理解javascript中的原型鏈的精妙設計!所以接下來宜人金科用充滿魅力的文字講解一下,讓大家展開聯想和記憶,去全面認識一下原型鏈是什么。提到原型鏈,我們首先應該認識原型。在JavaScript中,當定義一個函數數據類型(普通函數、類)時,往往會自帶一個prototype屬性,這個屬性指向函數的原型對象,并且這個屬性是一個對象數據類型的值。我們的引用類型都有一個隱式原型屬性,屬性值是普通的對象;同理,所有函數也都有一個原型屬性,屬性值是普通的對象;所有引用類型__proto__屬性指向它構造函數的prototype。也就是說,當訪問一個對象的某個屬性時,系統會先在這個對象本身屬性上查找。假如沒有找到,則會去它的__proto__隱式原型上查找,即它的構造函數的prototype;假如還沒有找到將繼續(xù)在構造函數的prototype的__proto__中查找。從以上可以看出,這個查找的過程是單鏈,只往一個方向流向,沒有回路,如此一步一步向上查找即可形成一個鏈式結構,這就是原型鏈。原型以及原型鏈在信用數據整合方面經常被提及和使用,宜人金科認為,在JavaScript中萬物都是對象,對象和對象之間也有關系,兩者之間相輔相成,并非孤立存在。對象之間的繼承關系,在JavaScript中是通過prototype對象指向父類對象,直到指向Object對象為止,這樣就形成了一個原型指向的鏈條。可以說,原型和原型鏈是JS實現繼承的一種模型,原型鏈實際上是為了節(jié)約內存的一種尋祖現象,其實全面認識原型鏈,對于很多人的工作乃至生活會有很大的助力,所以宜人金科希望大家都能正確理解原型、原型鏈的關系,為今后工作的順利開展奠定基礎。
相關話題(文章)