[.NET] 動態語言能力:自製 dynamic 物件 (1): ExpandoObject 物件

dynamic 型別,這個由 C# 4.0 (.NET Framework 4.0) 開始,打開了 C# 這個編譯式語言的動態之路,它的執行時期決議機制,使得開發人員能在只知道它的成員的情況下即可呼叫使用,它是動態語言執行期 (Dynamic Language Runtime, DLR) 的一部份,相對於 CLR (Common Language Runtime) 需要編譯才會產生相關的程式結構,在 DLR 的機制下,程式只在執行期才會解析相關的程式結構,並產生執行器所需要的資訊,而由於 DLR 是在 CLR 之上,使得 DLR 平台可完全相容於 CLR,並且與 CLR-compliant 的平台與程式語言相互使用。

...繼續閱讀 »

[JavaScript] JavaScript 物件導向設計 (2): 繼承篇

身為一個物件導向的程式開發人員,應該不會不知道繼承 (inheritance) 是什麼吧,它可以讓子類別擁有父類別的完整功能,並透過 private/protected/internal 等修飾子 (modifier) 做封裝的保護,子類別也可以存取父類別的資源,子類別也可以選擇允許或不允許給其他物件繼承等等,若是想要在不修改原本物件的情況下擴充原有功能,繼承是一個好方法。

...繼續閱讀 »

[JavaScript] JavaScript 的物件導向設計 (1):體驗篇

JavaScript 自從 Netscape 開發它以來,就幾乎已經確立它在 Web-based 前端應用程式的龍頭地位,即便在瀏覽器大戰第一回中勝出的微軟所開發的 VBScript 也無法取代它,除了它本身簡潔的描述式直譯語言特性外,它也是目前為止較多人認識,真正可跨平台的語言之一,隨著 Web 2.0 以及前端無刷新使用者介面的強勁需求,JavaScript 也已經成為一位合格的 Web Developer 必須要學會且熟練的程式語言,正因為它日益重要,它是否能被物件導向化就成為當初在制訂標準以及瀏覽器實作上的重點項目。畢竟物件導向語言 (C#, Java, VB.NET, Object Pascal, …) 還是程式語言的主力之一,而且物件導向程式語言的可重覆使用性 (reusability) 是最高的,所以 JavaScript 中運用物件導向的能力,將會成為 JavaScript 的基本功之一。

...繼續閱讀 »