Partilhar via


Criando uma Classe de Componente de Cliente Usando o Modelo Protótipo

Este tópico mostra como criar uma classe de componente de cliente AJAX no ASP.NET.Uma classe de cliente AJAX, que inclui componentes básicos, os comportamentos e classes de controle, é definida no ECMAScript (JavaScript) usando o modelo de protótipo e notação JSON.Na notação JSON, todos os membros do protótipo são separados por vírgulas.Não há nenhum vírgula após o último membro no protótipo.

O exemplo a seguir define uma classe de componente de cliente simples que não tem funcionalidade prática.Ele demonstra como definir uma classe derivada da classe base Component, usando o modelo de protótipo.

// Declare a namespace.
Type.registerNamespace("Samples");

// Define a simplified component.
Samples.SimpleComponent = function()
{
    Samples.SimpleComponent.initializeBase(this);

    // Initialize arrays and objects in the constructor
    // so they are unique to each instance.
    // As a general guideline, define all fields here. 
    this._arrayField = [];
    this._objectField = {};
    this._aProp = 0;
}
// Create protytype.
Samples.SimpleComponent.prototype = 
{
    // Define set and get accessors for a property.
    Set_Aprop: function(aNumber)
    {
        this._aProp = aNumber;
    },

    Get_Aprop: function()
    {
        return this._aProp;
    },

    // Define a method.
    DoSomething: function()
    { 
       alert('A component method was called.');
    }
} // End of prototype definition.


// Register the class as derived from Sys.Component.
Samples.SimpleComponent.registerClass('Samples.SimpleComponent', Sys.Component);

As etapas a seguir descrevem como definir uma classe de cliente ASP.NET AJAX, incluindo classes de controle:

  1. Se a classe for parte de um namespace, registre o namespace chamando o método Type.registerNamespace.

  2. Defina a função de construtor de classe e seu namespace no nome da função de construtor.No construtor, declare todos os campos particulares.É recomendável que variáveis particulares no construtor sejam declaradas como campos de instância usando o ponteiro this.Por convenção, os campos particulares são nomeados com um prefixo de sublinhado.

    Samples.SimpleComponent = function()
    {
        Samples.SimpleComponent.initializeBase(this);
    
        this._arrayField = [];
        this._objectField = {};
        this._aProp = 0;
    }
    
  3. Defina o protótipo de classe.No protótipo, defina todos os métodos públicos e particulares.Isso inclui métodos e eventos que acessam propriedades.

    É recomendável que você defina todos os campos no construtor.Há um ganho de desempenho muito pequeno para definir os campos no protótipo em vez de na função de construtor.No entanto, nem todos os tipos de campo podem ser declarados no protótipo.Por exemplo, tipos de campos Array e Object devem ser declarados no construtor de modo que sejam exclusivas para cada instância, em vez do que está sendo referenciado no protótipo de todas as instâncias.Isso evita o resultado não intencional de atualizar uma propriedade componente que você pretende que seja uma instância, mas, em vez disso, atualizando o valor para todas as instâncias.

    Observação:

    Sempre faça referência nos membros de protótipo através do ponteiro this.O ponteiro this tem um benefício de desempenho, pois o conjunto de trabalho usa menos memória.

  4. Registre a classe chamando o método Type.registerClass.Para obter mais informações sobre como usar o método Type.registerClass para registrar uma classe e declarar suas interfaces e classe base, consulte Método tipo.registerClass.

Consulte também

Tarefas

Criando Componentes Não Visual de Cliente personalizados