對 Javascript 的誤解
Thursday, June 30, 2005
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 一面,澄清了大家一般的誤解,很值得大家參考。







