1. 程式人生 > >好程序員前端教程面對對象與原型原型鏈

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

方法 線性 數據的操作 種類 如果 多態 定義 對象信息 包含

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

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