2010年9月15日 星期三

Javascript 的 prototype 特性與使用方法

一般我們在 javascript 中使用這種方式進行類別定義與活化類別
// 以 function 為建構子
function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

//然後活化類別
var p = new Person("Dino", "Wang");


如你所見這樣的類別並不具有"成員函式",所以當你需要成員函式時你可能會手動繫結上去
// 附加一個匿名函式到 p 實體
p.fullName = function () { 
  return this.firstName + " " + this.lastName; 
}


這樣的問題是,每一個被活化的類別都需要進行一次上述動作(以下稱為成員繫結),如果你這類別會產生多個物件,就會造成匿名函式重複產生的問題(浪費記憶體)

設定 ASP.NET MVC 2 編譯時期檢查 View 的設定 MvcBuildViews 導致編譯失敗

設定了 MvcBuildViews 可以得到編譯時期檢查 View 正確性的好處,於是從善如流趕緊在專案檔找到 MvcBuildViews 選項並設為 true。

  ...
  true
  ...


隨後編譯即出現:

無法載入型別 'System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider' 錯誤

結果追蹤到這篇,才發現是因為專案使用 Entity Framework 的關係,在 web.config 中增加

  ...
  


即可順利編譯囉。