2014年5月25日 星期日

[js] JavaScript裡面只有物件沒有類別。

一般來說想到寫OO,大概會先想寫個類別然後new一下

很開心的就可以來宣稱[這就是OO啦]

OOP的特性印象中是封裝、多型、繼承

老實說越看越感覺"說得很明確,感覺很模糊"

(好吧,討論OO下去這篇根本就歪掉了)

總之,OO其實只是我們一種組織邏輯的方式

依照職責分工、允許有各自不同的細節、實作可以重複利用等等

特性的部分應該只是歸納後的重點

分類管理做得好,大而不肥,粗中帶細,才是真正的OO啦!!!

---

與一般OO程式語言先寫Class(權責分類)再建立Object(程式重用)不同

JavaScript則是建立Object(先有能用的程式)... 然後"結束"...

例如:
var person = {
    name: "小明",
    age: "18",
    hi: function(){
        console.log(name+"是個"+age+"歲的年輕人");
    }
};
person.hi();

也就是JavaScript的特性允許我們馬上開始建立能用的程式!!

其實幾行甚至一兩百行的小程式這樣寫也不是什麼大問題

問題還是出在管理上,這樣子的程式越來越多,一天有個幾百行,一個月...一年...

零散沒有組織的邏輯,只會搞死後來維護的人。


根據這樣的基礎,我們應該思考衍生出來的後續問題

該怎麼合理有效的組織js物件

如何建立物件?

如何分類物件?

如何讓很多不同的物件可以活在同一個頁面上,又彼此獨立不會相互影響?

如何讓物件是一個獨立的個體,又足夠開放給外部功能做存取?

js很有意思的!!!


回過頭來,雖然js允許我們利用不OO的方式組織程式

但是透過寫物件與一些語法的性質,我們一樣可以建立有OO感的js程式 <3

也就是說... 程式寫不好大部份還是人的問題啦...

沒有留言:

張貼留言