Compartilhar via


Criação de objeto avançado (JScript)

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

Criando um objeto com base em protótipo

Para criar uma instância de um objeto de protótipo, você deve primeiro definir uma função de 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 do prototype objeto (que é próprio uma propriedade de cada construtor) para criar as propriedades herdadas e métodos compartilhados. O construtor fornece as informações específicas de instância para um objeto, enquanto o prototype objeto fornece as informações específicas do objeto e métodos ao objeto.

Observação:

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

Desde as propriedades e métodos do prototype objeto são copiados por referência para cada instância de um objeto, todas as instâncias de ter 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á somente que uma instância.Aqui está um exemplo que usa o construtor personalizado, Circle. The Isso demonstrativo ativa o método para acessar 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 as 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 entrelinhamento e à direita espaços das seqüências (semelhantes a Aparar função no Visual Basic), você pode criar seu próprio método sobre o Seqüência de caracteres objeto de protótipo e todas as strings no script herdarão automaticamente o método.Este exemplo usa uma 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, a /Fast- sinalizar, 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 do JScript