Share via


Object Type Extensions

Provides extended reflection-like functionality to the base ECMAScript (JavaScript) Object object.

Namespace: None. This type extension is global and not part of a namespace.

Inherits: None.

var objectVar = new Object();

Member Extensions

Name

Description

Object.getType Function

Returns the type of a specified object instance.

Object.getTypeName Function

Returns a string that identifies the run-time type name of an object.

Remarks

Object extensions are part of the Microsoft Ajax Library. They add functionality to the built-in JavaScript Object object. The Object extensions provide reflection-like information about a typed instance. Use these methods to discover the type and type name of an object.

For more information about the JavaScript object that this type extends and about its constructor, see Object Object in the Language Reference.

Example

The following example shows how to use the Object extension. The code creates a new Object instance and invokes the getType function extension to access the type instance that represents an object. It also invokes the getTypeName function extension to access the type name.

<!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>Samples</title>
</head>
<body>
    <form id="form1" runat="server">
       <asp:ScriptManager runat="server" ID="ScriptManager1">
       </asp:ScriptManager>
       <script type="text/javascript">

            Type.registerNamespace('Samples');

            // Define and register a Samples.Rectangle class.
            Samples.Rectangle = function(width, height)
            {   
                this._width = width;
                this._height = height;
            }

            Samples.Rectangle.prototype.getWidth = function() {
               return (this._width === undefined) ? null : this._width;
            }

            Samples.Rectangle.prototype.getHeight = function() {
               return (this._width === undefined) ? null : this._height;
            }

            Samples.Rectangle.registerClass('Samples.Rectangle');


            // Define and register a Samples.Square class.
            Samples.Square = function(length)
            {
                this._length = length;
            }

            Samples.Square.prototype.getLength = function() {
               return (this._length === undefined) ? null : this._length;
            }

            Samples.Square.prototype.setLength = function(length) {
                this._length = length;
            }

            Samples.Square.registerClass('Samples.Square');


            // Create instances of Square and Rectangle and discover their types.    
            Samples.testObjectReflection = function() 
            {
                var width = 200;
                var height = 100;
                var a = new Samples.Rectangle(width, height);

                var length = 50;
                var b = new Samples.Square(length);

                var name = Object.getTypeName(a);
                // Output "The type name of object a is: Samples.Rectangle"
                alert("The type name of object a is: " + name);
                
                var isSquare = Samples.Rectangle.isInstanceOfType(b)
                // Output "Object b is an instance of type Square: false"
                alert("Object b is an instance of type Square: " + isSquare);
                
                var c = Object.getType(b);
                
                name = Object.getTypeName(c);
                 // Output "The type name of object c is: Function"
                alert("The type name of object c is: " + name);
                        
                var isSquare = Samples.Square.isInstanceOfType(c);
                if (isSquare)
                {
                   var newLength = a.getWidth();
                   c.setLength(newLength);
                   alert("Object c is a Square with a length of: " + c.getLength());
                }
            }

            // Run the sample.
            Samples.testObjectReflection();

        </script>

    </form>
</body>
</html>

See Also

Reference

Object Object

new Operator

Object Type Functions

Other Resources

Language Reference