好程序員前端教程面對對象與原型原型鏈

好程序員前端教程面對對象與原型原型鏈
1、面向對象:
面向對象是一種程序開發的方法,它將對象做爲程序的基本單元,將程序和數據封裝其中,以提升軟件的靈活性、重用性和擴展性。對象是把數據及對數據的操做方法放在一塊兒,做爲一個相互依存的總體。再說一下類與對象,類描述了一組有相同特性和相同行爲的對象,具備相同屬性和相同方法的對象的抽象就是類。即對象的抽象是類,類的實例是對象。在面向對象的編程中,把用類建立對象的過程稱爲實例化。
面向過程與面向對象的區別在於面向過程是一種直接的編程方法,它是按照編程語言的思路考慮問題。經過順序執行一組語句來實現一個功能,這些語句的執行過程就是整個程序。面向對象是一種抽象度更高的編程方法。它的目標是使模塊的抽象度更高,目的是可複用。面向對象三大特性:封裝,繼承,多態。
面向過程能夠說是從細節方面思考問題。面向對象能夠說是從宏觀方面思考問題
對象的建立方式有對象字面量,工廠方式,原型方式,構造函數,混合模式。
原型,原型鏈:
咱們建立的每一個函數都有一個prototype屬性,這個屬性是一個指針,指向一個對象,這個對象的用途是包含能夠由特定類型的全部實例共享的屬性和方法。那麼,prototype就是經過調用構造函數而建立的那個對象實例的原型對象。使用原型的好處是可讓對象實例共享它所包含的屬性和方法。也就是說,沒必要在構造函數中添加定義對象信息,而是能夠直接將這些信息添加到原型中。使用構造函數的主要問題就是每一個方法都要在每一個實例中建立一遍。在JavaScript中,一共有兩種類型的值,原始值和對象值。每一個對象都有一個內部屬性 prototype ,咱們一般稱之爲原型。原型的值能夠是一個對象,也能夠是null。若是它的值是一個對象,則這個對象也必定有本身的原型。這樣就造成了一條線性的鏈,咱們稱之爲原型鏈。
簡單的說就是在JavaScript 中,每當定義一個對象(函數)時候,對象中都會包含一些預約義的屬性。其中函數對象的一個屬性就是原型對象 prototype。JS在建立對象(不管是普通對象仍是函數對象)的時候,都有一個叫作__proto__的內置屬性,用於指向建立它的函數對象的原型對象prototype,咱們把這個有__proto__串起來的直到Object.prototype.__proto__爲null的鏈叫作原型鏈。前端

相關文章
相關標籤/搜索