[ js ] 物件導向的寫法

看板Ajax作者 (小小吳)時間12年前 (2013/09/11 20:16), 編輯推噓4(408)
留言12則, 3人參與, 最新討論串1/1
還沒有用 js 寫過物件導向的 code, 由於 js 的物件導向和其他語言很不一樣,先查了一些資料 像是這篇 http://www.josephjiang.com/presentation/OOJS/object-oriented-paradigms.html 文內就有提到好幾種物件導向的實作方式, 而且看起來應該也還有其他種方式。 有的用 prototype 寫 function,有的直接包物件內; 有的方式寫起來直觀,有的方式寫起來效能更好, 不知道各位用 js 寫物件導向的時候,通常會採用什麼方式? 以及是否有特別的原因? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.24.254.149

09/12 03:33, , 1F
個人的話慣用JSON定義完整的prototype然後在assign
09/12 03:33, 1F

09/12 03:33, , 2F
原因... jQuery就這樣寫的XD
09/12 03:33, 2F

09/12 09:32, , 3F
function + prototype 因為這就是javascript最原生的
09/12 09:32, 3F

09/12 09:33, , 4F
的class方法 根據以前我看v8引擎的介紹這樣寫也最快
09/12 09:33, 4F

09/12 09:33, , 5F
因此生出來的物件可以被記憶並且最優化
09/12 09:33, 5F

09/12 09:35, , 6F
而且據我所知大部份的class套件內部也是這樣寫的
09/12 09:35, 6F

09/12 09:35, , 7F
比如Backbone
09/12 09:35, 7F

09/12 09:35, , 8F
想要寫起來更直觀的話 使用這些套件就行了
09/12 09:35, 8F

09/12 09:36, , 9F
ECMA5的Object.create繼承法更適合定義資料或者設定y
09/12 09:36, 9F

09/12 09:37, , 10F
不過這是感覺上啦
09/12 09:37, 10F

09/12 09:38, , 11F
至於ECMA6的class就不知道是多久以後的事了....
09/12 09:38, 11F
感謝各位回應 ※ 編輯: willy69wu31 來自: 163.24.254.149 (09/13 16:26)

09/14 01:49, , 12F
定義建構子去宣告新物件.
09/14 01:49, 12F
文章代碼(AID): #1IC5ycv0 (Ajax)
文章代碼(AID): #1IC5ycv0 (Ajax)