熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

剖析ASP.NET AJAX的面向對象思想[1]

2013-11-13 11:03:07  來源: .NET編程 

  人們期待已久的ASPNET AJAX v正式版終於發布了現在你能用Microsoft ASPNET AJAX的javascript很容易的寫出豐富的交互式的web應用尤其值得關注的是Microsoft AJAX Library增加了面向對象的支持而以前javascript是不支持面向對象開發的現在icrosoft AJAX Library能很好的支持類名字空間繼承接口枚舉反射等特征這些新增加的功能類似於NET Framework這使得開發ASPNET AJAX應用變得容易維護容易擴充現在我們看看Microsoft AJAX Library是如何支持以上特征的

成員和名字空間

  在Microsoft AJAX Library中所有的JavaScript類都繼承自object(類似於NET Framework庫都繼承自object)在ASPNET AJAX應用中你可以運用面向對象的編程模式創建繼承自Microsoft AJAX基類的對象和組件類有四種成員字段屬性方法事件字段和屬性是名/值對用於描述一個類的一個實例的特性的字段是由簡單類型構成且可直接訪問例如myClassInstancename=Fred

  屬性可以是任何簡單類型或引用類型通過get和set方法訪問在ASPNET AJAX中get和set是獨立的函數並規定在函數名中使用前綴get_set_ 例如要獲取或設置cancel屬性的值時你可以調用get_cancel或set_cancel方法

   一個方法是完成一個活動的函數而不是返回一個屬性的值屬性和方法在下面的例子裡都有示范

  事件指示特指的動作發生當一個事件發生時它可以調用一個或多個函數事件所有者可以完成等待事件發生的任何任務

  名字空間是對關聯類的邏輯分組名字空間使你可以對公共功能進行分組

  為了使ASPNET Web頁面具有ASPNET AJAX功能你必須添加<asp:ScriptManager>控件到頁面上當頁面啟動時參照ASPNET AJAX庫的腳本自動產生

  下面的例子顯示了頁面使用了<asp:ScriptManager>控件

<asp:ScriptManager runat=server ID=scriptManager />

  下面的例子演示了如何使用TyperegisterNamespace和registerClass方法來把Person類增加到Demo名字空間中創建類然後注冊類

TyperegisterNamespace(Demo);

DemoPerson = function(firstName lastName emailAddress) {
  this_firstName = firstName;
  this_lastName = lastName;
  this_emailAddress = emailAddress;
}

DemoPersonprototype = {

  getFirstName: function() {
    return this_firstName;
  }

  getLastName: function() {
    return this_lastName;
  }

  getName: function() {
    return this_firstName + + this_lastName;
  }

  dispose: function() {
    alert(bye + thisgetName());
  }
}
DemoPersonregisterClass(DemoPerson null SysIDisposable);

  在腳本文件Namespacejs中定義了類Person制定了類的名字空間為Demo運行頁面Namespaceaspx點擊按鈕將創建一個DemoPerson類的實例

  訪問修飾

  許多面向對象編程語言都有訪問修飾的概念允許你指定類或成員在某種范圍內有效例如可在外部執行的程序具有相同名字空間的內部類或特指的代碼快內的類等在JavaScript中沒有訪問修飾但在ASPNET AJAX中約定以下劃線字符開頭_的被認為是私有的類的外部不能訪問

[]  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/15063.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.