Type.registerClass Method
Registers a class as defined by a constructor with an optional base type and interface type.
classInstanceVar.registerClass(typeName, baseType, interfaceTypes)
Parameters
typeName
A string that represents the fully qualified name of the type.baseType
(Optional) The base type.interfaceTypes
(Optional) An unbounded array of interface type definitions that the type implements.
Return Value
The registered type.
Exceptions
Exception type |
Condition |
---|---|
(Debug) typeName cannot be evaluated. -or- (Debug) baseType is not a class. |
|
(Debug) The class specified by typeName is already registered. |
Remarks
Use the registerClass method to register a class as defined by a constructor with an optional base class and interface type. The registerClass method is invoked after the class has been defined, but before it is instantiated. The registerClass method is invoked directly from the class.
Deriving from a Base Class
Methods of the Sys.Type class support single inheritance. You derive one class from another by following these steps:
When you register the derived class, specify a base class in the baseType parameter of the registerClass method.
In the first line of the derived class definition, initialize the base class by calling the Type.initializeBase method.
The following example shows how to register a class that is derived from a base class. The code invokes the registerClass method with a base class specified in the baseType parameter. The derived class initializes its base class by calling the Type.initializeBase method in the first line of its definition.
Type.registerNamespace('Samples');
Samples.A = function(){}
// Register Samples.A Class
Samples.A.registerClass('Samples.A');
Samples.B = function(){}
// Register Samples.B Class
Samples.B.registerClass('Samples.B');
Samples.C = function(){
// Initialize the base.
Samples.C.initializeBase(this);
}
// Register Samples.C Class as derviving from Samples A and implementing Samples.B
Samples.C.registerClass('Samples.C', Samples.A, Samples.B);
Implementing an Interface
Methods of the Type class support implementing an interface. You implement an interface by specifying a registered interface in the interfaceTypes parameter of the registerClass method when you register the class. For more information about how to register an interface, see Type.registerInterface Method.
The following example shows how to register a derived class. The registerClass method specifies a base class in the baseType parameter.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Sample</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" ID="ScriptManager1">
</asp:ScriptManager>
<script type="text/javascript">
// Register classes to test.
Type.registerNamespace('Samples');
Samples.A = function()
{
// Initialize as a base class.
Samples.A.initializeBase(this);
}
Samples.B = function(){}
Samples.C = function(){}
Samples.A.registerClass('Samples.A');
Samples.B.registerClass('Samples.B', Samples.A);
Samples.C.registerClass('Samples.C');
var isDerived;
isDerived = Samples.B.inheritsFrom(Samples.A);
// Output: "true".
alert(isDerived);
isDerived = Samples.C.inheritsFrom(Samples.A);
// Output: "false".
alert(isDerived);
</script>
</form>
</body>
</html>