Функция Object.getType

Возвращает тип заданного экземпляра объекта.

var typeVar = Object.getType(instance);

Аргументы

Термин

Определение

instance

Объект, для которого возвращается тип.

Возвращаемые значения

Экземпляр типа, представляющий объект времени выполнения instance.

Исключения

Тип исключения

Атрибут Condition

Функция Error.argumentUndefined

(Отладка) Объект instance не определен.

Функция Error.argumentNull

(Отладка) Объект instance имеет значение null.

Заметки

Функция getType используется, чтобы получить новый экземпляр типа, представляющий объект типа времени выполнения.

Пример

В приведенном ниже примере показано, как использовать функцию getType, чтобы создать новый экземпляр типа, представляющий объект типа времени выполнения. Затем на основании типа объекта отображаются сведения.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://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>


См. также

Ссылки

Оснастки расширений объектных типов

Другие ресурсы

Справочник по языку