June 30, 2005

對 Javascript 的誤解

Javascript 是用在瀏覽器的 Scripting language ,很多 Programmer 都認為 Javascript 並不是一種嚴謹的 Language ,因為可以寫得很隨意,沒有太的限制,語法彈性很大。而事實上,大家最常用/寫的 Javascript 其實都是一些 Event driven 的功能,在 onclick, onblur 加上相對的 Javascript function。也有人認為, Javascript 跟本不算得上是 Object-Oriented。

這其實只是一種誤解,在設計上 Javascript 是完全 OO 的,只是他沒有限制大家要寫得很 OO。 Javascript 的 OO 與一般 Java, C++ 的不同,Java、C++ 這些 OOP 都有 Class 和 Instance 的概念,但 Javascript 的 OO 是 Prototype-based 的,沒有 Class ,但一樣可以有 Inheritance 。簡單的一個 function ,其實就是 Object 的 Constructor 。沒有 extends ,但可用 Prototype 連接建構起 Object 之間的層級。

近期 Ajax 大熱,大家也就開始多注意了 Javascript ,而在 del.icio.us 裏就有很多不同的 Javascript 文章每日在增加,當中這篇 Object Hierarchy and Inheritance in JavaScript 用簡單的例子介紹了 Javascript 的 OO 一面,澄清了大家一般的誤解,很值得大家參考。

由 Jacky 發表於 June 30, 2005 03:39 AM | 引用
本文的引用網址:
http://www.seezone.net/cgi-bin/MT/mt-tb.cgi/447
迴響

正!JACKY兄這篇推介、及至這些連結的延伸,於小A最近的OO研究極有用,萬謝!:D

Posted by: 世界盡頭A 發表於 June 30, 2005 06:02 AM

也不能算為object-oriented,只為object-based吧

其實也不用OO,因為event-driven已經夠了…

Posted by: minghong 發表於 June 30, 2005 09:20 AM

但我覺得,就算是 Event-Driven ,但其實也在一 DOM 裏玩。所有的東西都是 Object ,不過寫法並非我們慣用的 OO 吧!

Posted by: Jacky 發表於 June 30, 2005 09:47 AM
發表迴響









記住我的資訊?