命名空間在.Net中非常常見,為了避免類型沖突,並將類進行分類識別。在ASP.Net AJax中也有命名控件的概念,通過使用Type.registerNamespace("SpaceName") 來注冊一個命名空間。
2、類
類的構造函數就是function的定義。通常類的私有成員使用_開頭,但是這僅僅只是標識這個成員是私有的,不能做到真正的封裝,外部還是可以訪問當這個內部成員。類的內部成員不用聲明,直接可以在函數中使用。
上面這段代碼就是Employee類的構造函數。
定義類的方法:在ASP.Net AJax是,定義類的成員方法是基於prototype的定義
如例所示,定義類的方法,需要使用命名空間名加類名加prototype,每個方法之間一定要用'',''分割。注意在JS中set_、get_開頭的方法作為一個類的屬性。
在定義完類和類的方法之後需要注冊類,使用NameSpace.ClassName.registerClass("NameSpace.ClassName")來注冊一個類,注意命名空間需要注冊在這個之前。
3、實現面向對象的特性-繼承
如果要在派生類裡調用基類的方法需要使用callBaseMethod方法,具體的調用方法如下
第一個參數為this指針,第二個參數為基類的方法名,後面的參數為激勵方法的參數,是一個不定參數。
注意:在ASP.Net AJax中與.Net中一樣,只能單繼承,但可以實現多接口
4、枚舉類型
注冊枚舉使用registerEnum方法,第二個參數是判斷是否是標記類型類型,可缺省,如果是一個標記,那麼內部成員的值按照2的次方賦予。枚舉類型是沒有構造函數的,所以構造函數拋出未實現異常。枚舉類型的toString方法有兩種,一種是prototype的toString方法,沒有參數,它是直接將此枚舉對象轉化為數字,然後作為字符串輸出。另一種是枚舉類型中的靜態方法,需要傳遞一個參數,參數類型為枚舉類型,它轉換這個枚舉對象為枚舉的描述。枚舉類型的parse方法如下
如果參數的字符串中只有Item1,那麼表示把Item1字符串轉換為一個標記或一個枚舉類型,但如果有多個參數,那麼是將兩個值‘或’或者‘加起來’
4、反射方法
反射的prototype方法 NamespaceName.ClassName.getBaseType() 得到基類的類型 NamespaceName.ClassName.getInterfaces() 得到實現的接口集合 NamespaceName.ClassName.getName() 得到類型名 NamespaceName.ClassName.implementsInterface(NamespaceName.InterfaceName) 得到一個布爾值,判斷是否實現了某個接口,實現了返回true,否則返回false NamespaceName.ClassName.inheritsFrom(Namespace.ClassName) 得到一個布爾值,判斷是否繼承了某個類,繼承了返回true,否則返回false NamespaceName.Interface.isImplementedBy(Namespace.ClassName) 判斷一個接口是否被另外一個類實現了,實現了返回true,否則返回false Namespace.ClassName.isInstanceOfType(instance)
判斷某個類型的實例是否是這個類型。是返回true,否則返回false
Type的靜態方法 Type.getRootNamespaces() 得到根命名空間的集合 Type.isClass(Namespace.ClassName) 判斷一個類型是否是類,是返回true,否則返回false Type.isNamespace(Namespace) 判斷一個類型是否是命名空間 Type.isEnum(TypeName) 判斷一個類型是否是枚舉類型 Type.isFlags(TypeName) 判斷一個類型是否是標記 Type.parse(Namespace.ClassName) 通過反射的方法,按照類名,和命名空間創建一個命名空間下的某個類的實例 Object.getType(Instance) 通過實例得到這個實例的類型 Object.getTypeName(Instance)
通過實例得到這個實例的類型名
使用Asp.Net Ajax客戶端編程可能需要用到js文那麼在頁面上需要引入這個JS文件。但是不能使用src=地址這種方法引入文件,因為直接使用這種方法導入文件,要包含Asp.Net AJax客戶端組件的js文件。最好在ScriptManager裡面加入一個Scirpts標簽然後在Scripts裡加入<asp:ScriptReference Path="JS"/>,因為使用ScriptManager來引用會自動導入ASP.Net AJax的客戶端組件的JS文件
<ASP:ScriptManager ID="ScriptManager1" runat="server">
<Script>...
<ASP:ScriptReference Path="Employee.JS"/ >
</Script>
</ASP:ScriptManager>並且,所有的類型調用,方法調用都必須在這個ScirptManager之後,否則會造成找不到類型錯誤