Criação de objeto avançado (Visual Studio - JScript)

JScript oferece suporte a herança com os objetos personalizados com base em protótipo. Por meio de herança, objetos com base em protótipo podem compartilhar um conjunto comum de propriedades e métodos que podem ser adicionados ou removidos dinamicamente. Além disso, os objetos individuais podem substituir o comportamento padrão.

Criando um objeto de protótipo

Para criar uma instância de um objeto baseado no protótipo, primeiro você deve definir um construtor. Para obter mais informações, consulte Criando seus próprios objetos com funções de construtor. Depois que esse construtor é gravado, você pode usar propriedades da prototype (que também é uma propriedade de cada construtor) de objeto para criar as propriedades herdadas e métodos compartilhados. O construtor fornece as informações específicas da instância para um objeto, enquanto o prototype objeto fornece as informações específicas do objeto e os métodos do objeto.

ObservaçãoObservação

Para afetar todas as instâncias do objeto, deve haver uma alteração para o prototype o objeto do construtor. Alterando a prototype propriedade de uma instância de um objeto não tem efeito em outras instâncias do mesmo objeto.

Desde as propriedades e métodos para o prototype objeto são copiados por referência em cada instância de um objeto, todas as instâncias têm acesso às mesmas informações. Você pode alterar o valor de uma propriedade de protótipo em uma instância para substituir o padrão, mas a alteração afetará apenas uma instância. Aqui está um exemplo que usa o construtor personalizado, Circle. O Este instrução permite o método de acesso a membros do objeto.

// Define the constructor and add instance specific information.
function Circle (radius) {
    this.r = radius;  // The radius of the circle.
}
// Add a property the Circle prototype.
Circle.prototype.pi = Math.PI;
function ACirclesArea () {
   // The formula for the area of a circle is pi*r^2.
   return this.pi * this.r * this.r; 
}
// Add a method the Circle prototype.
Circle.prototype.area = ACirclesArea;
// This is how you would invoke the area function on a Circle object.
var ACircle = new Circle(2);
var a = ACircle.area();

Usando esse princípio, você pode definir propriedades adicionais para funções existentes do construtor (que todos têm objetos de protótipo). Isso funcionará somente quando o modo rápido é desativado. Para obter mais informações, consulte /rápido.

Por exemplo, se você deseja remover à esquerda e espaços de seqüências de caracteres (semelhante ao Aparar função em Visual Basic), você pode criar seu próprio método no seqüência objeto de protótipo e todas as seqüências de caracteres no seu script herdarão automaticamente o método. Este exemplo usa um literal de expressão regular para remover os espaços. Para obter mais informações, consulte Objeto de expressão regular.

// Add a function called trim as a method of the prototype 
// object of the String constructor.
String.prototype.trim = function() {
   // Use a regular expression to replace leading and trailing 
   // spaces with the empty string
   return this.replace(/(^\s*)|(\s*$)/g, "");
}

// A string with spaces in it
var s = "    leading and trailing spaces    ";
print(s + " (" + s.length + ")");

// Remove the leading and trailing spaces
s = s.trim();
print(s + " (" + s.length + ")");

Após a compilação deste programa, o /fast- sinalizador, a saída deste programa é:

    leading and trailing spaces     (35)
leading and trailing spaces (27)

Consulte também

Outros recursos

Objetos com base em protótipo

Objetos de JScript