8/22/2013
2:54:00 PM 0

[Enterprise Library] Data Access Application Block - Query

最近在瀏覽網路文章時發現微軟的 Enterprise Library, 雖然不是什麼新東西(2005年就發表第一版), 目前的版本是 6.0(April 2013),但發現 Enterprise Library 竟然是 open source 的, 看了一些範例程式發現裡頭大量使用一些 Design Pattern 來簡化目前程式,激起了我研究他的興趣, 因為工作的關係現在比較少機會接觸到微軟的程式, 但他裡頭的設計方式是值得學習和研究的, 想要了解這 Library 第一步驟當然要先學會如何使用它, 先從連接資料庫的部分開始 首先 Refrences 加入 Microsoft.Practices.EnterpriseLibrary.Data using directive using Microsoft.Practices.EnterpriseLibrary.Data; 在不使用 LINQ 和 Entity Framework 的狀況下,如果要將資料庫裡的資料轉變成為強型別的物件 1. 在未使用 Enterprise Library 之前原本的做法 public...
8/16/2013
1:56:00 PM 0

JavaScript function 的兩種宣告方式

寫法一 function subtract(a, b){ return a - b; }; 寫法二 var subtract = function (a, b) { return a - b; }; 這是兩種不同的 function 宣告方式 第一種寫法是 Function Declaration 產生 execute context 階段時 Function Declaration 就已存到 VO(Variable Object), 所以在執行階段(Execution Stage), 函式就已先存在, 造成的結果是程式呼叫的位置可以比程式宣告更前面 var result = subtract(1,2); function subtract(a, b){ return a - b; }; 第二種寫法是 Function Expression Function Expression 寫法在執行階段才建立,並且不會被存在變數物件(VO)中, 可依照條件建立 Function Expression var...
8/14/2013
3:03:00 PM 0

Javascript execution context

Javascript execution context
什麼是 execution context ? 一個 execution context 包含了一些資訊, 而這些資訊在程式執行期間是必要的, 而這些資訊包含 LexicalEnvironment VariableEnvironment ThisBinding 當 Javascript 程式執行時, 會產生 execution context, 每段可執行的程式都有其對應的 execution context, 運作中的 execution contexts 像一個 logical stack, 而最上層的 Stack 就是正在執行的 execution context 產生 Execution Context 依照程式的不同,而會有三類不同的狀況  1. Entering Global Code var i = 0; function test(){console.log("test");} 2. Entering Function Code function factorial(num) { if (num...
8/02/2013
4:53:00 PM 0

Javascript Prototype Chain

Javascript Prototype Chain
Javascript 使用 prototype 來達到類似其他語言的繼承概念, 要了解 Javascript 的繼承, 首先要了解 prototype chain, 當我們建立一個 Javascript 物件, 並使用 Javascript 屬性時, 會先從物件內部所擁有的屬性開始尋找, 如果找不到屬性的名稱,就會從 prototype 所指向的物件繼續搜尋, 一層一層的往內搜尋, 這就是原型鏈搜尋 首先我們使用 function 來建構一個物件 (Object Constructor) function Earth(){}; 接著建立一個物件實例(Object Instances) var e1 = new Earth(); 建立實例的過程中不單單是設定 name 屬性, 還把 Employee 所繼承的物件帶給 e1 new 的動作相當於 var e1 = {}; e1.__proto__ = Earth.prototype;//__proto__ Non-standard Earth.call(e1); 使用...