prototype-based 基於原型的 (初心者適用 )

prototype-based 基於原型的(初心者適用 )

如果你已經懂得基於原型的是啥麼意思,就千萬別再看下去,你會覺得我寫的很白癡=="。

學Javascript常常都會聽到基於原型的繼承(prototype-based inheritance )這句話,到底什麼是基於原型??乍看之下很難理解。其實我們可以把基於原型放一邊,然後看看另外一種繼承方式,基於類別的繼承(class-based inheritance)。基於類別的繼承就是用類別來做繼承,這比較容易理解。所以用這角度來看基於原型的繼承,自然能知道基於原型的繼承就是用原型來繼承。

閱讀全文:prototype-based 基於原型的 (初心者適用 )

物件的繼承(二)--複製屬性的第一種方法

物件的繼承(二)--複製屬性的第一種方法:

上次我們在物件的繼承中提到使用原型(prototype)來進行繼承,而使用原型繼承的特點就是屬性的共享,這很好,但是也有不對時的時候,總是有些時候我們希望繼承一些屬性,但卻不願意和人共享。譬如說我有個creature物件,我想要繼承他的name屬性,但我總不能跟別人共享這name屬性吧。

閱讀全文:物件的繼承(二)--複製屬性的第一種方法

同步與非同步的差異

什麼是同步(synchronous)??什麼是非同步(asynchronous)??同步與非同步的差在哪裡??

在看文章時常常都會看到一推像是什麼 "同步載入","非同步技術"之類的字眼,可能有些人其實不太了解同步跟非同步的差別,甚至會有些誤解,話說,"同步"這字眼真的很容易讓人以為他是在"同時處理"什麼之類的東西

閱讀全文:同步與非同步的差異

物件的繼承

物件的繼承:

繼承的目的在於重用程式碼,以及結構化的資料。在程式中,物件通用的屬性與方法,都應該用繼承的方式來進行,這是一種比較有效率的做法。

Javascript的物件繼承原理其實並不難,只是相當異於一般(基於類別)的物件導向程式。Javascript是一個基於原型的物件導向程式,他的繼承主要就是依據原型來實作。如果你學過其他的物件導向語言,可能會有點不習慣,不過沒關係,先將其他的物件導向語言的概念放一旁。重新學學Javascript的繼承方式。

閱讀全文:物件的繼承

物件的屬性與方法(公開與私有)

物件的屬性與方法,公開與私有:

物件的屬性與方法有公開與私有之分,公開的屬性與方法可藉由物件直接存取,私有的會隱藏在物件內,不被外部程式碼所見,也不能直接被存取。與一般物件導向語言不同的是,Javascript並無法直接宣告變數為公開或私有。但是我們可以藉由其他方式來達到目的。

下面兩個例子中的兩個屬性itemname、type與兩個方法getName、getType都是公開的,可以在物件後面加 " . " 然後加名稱來存取,譬如說myitem.itemname,myitem.getType()等等。

閱讀全文:物件的屬性與方法(公開與私有)

建構函式的三種變數剖析

建構函式的三種變數剖析:

Jvascript與一般的物件導向語言不同,它不是使用類別來建立物件,而是使用建構函式,在Javascript中建構函式可以像類別一樣,用來重複建立物件。不過與類別又不相同。建構函式本身就是物件,所以可以擁有自己的屬性和方法,同時它也是個函式,有自己的作用域變數,而建構函式建立的物件也擁有自己的屬性與方法。我們直接來看看下面這例子:

閱讀全文:建構函式的三種變數剖析