Partilhar via


Criando seus próprios objetos com funções de construtor

Um recurso eficiente do JScript é a capacidade de definir funções de construtor para criar objetos personalizados com base em protótipo para uso em seus scripts.Para criar uma instância de um objeto de protótipo, você deve primeiro definir uma função de construtor.Esse processo cria um novo objeto e inicializa-(cria propriedades e atribui um valor inicial).Quando concluído, o construtor retorna uma referência ao objeto construído.Dentro do construtor, o objeto criado é chamado com o Isso demonstrativo.

Construtores com propriedades

O exemplo a seguir define uma função de construtor para pasta objetos. The Isso demonstrativo permite que o construtor para inicializar o objeto.

// pasta is a constructor that takes four parameters.
function pasta(grain, width, shape, hasEgg) {
   this.grain = grain;    // What grain is it made of?
   this.width = width;    // How many centimeters wide is it?
   this.shape = shape;    // What is the cross-section?
   this.hasEgg = hasEgg;  // Does it have egg yolk as a binder?
}

Depois de definir um construtor de objeto, você deve criar instâncias do objeto com o novo operador.Aqui o pasta construtor é usado para criar spaghetti e linguine objetos.

var spaghetti = new pasta("wheat", 0.2, "circle", true);
var linguine = new pasta("wheat", 0.3, "oval", true);

Você pode adicionar dinamicamente propriedades a uma instância de um objeto, mas essas alterações afetam apenas que uma instância.

// Additional properties for spaghetti. The properties are not added
// to any other pasta objects.
spaghetti.color = "pale straw";
spaghetti.drycook = 7;
spaghetti.freshcook = 0.5;

Se você deseja adicionar uma propriedade extra para todas as instâncias do objeto sem modificar a função de construtor, você pode adicionar a propriedade para objeto de protótipo do construtor.Para obter mais informações, consulte Criação de objeto avançado (JScript).

// Additional property for all pasta objects. 
pasta.prototype.foodgroup = "carbohydrates";

Construtores com métodos

É possível incluir métodos (funções) na definição de um objeto.Uma maneira de fazer isso é incluir uma propriedade na função de construtor que se refere a uma função definida em outro lugar.Como as funções de construtor, essas funções Consulte também o objeto corrente com o Isso demonstrativo.

O exemplo a seguir expande o pasta função de construtor definida acima para incluir uma toString método que será chamado se a função exibe o valor do objeto.(Em geral, JScript usará o toString método de um objeto quando o objeto é usado em uma situação onde é necessária uma seqüência de caracteres.Você raramente precisará chamar o toString método explicitamente.)

// pasta is a constructor that takes four parameters.
// The properties are the same as above.
function pasta(grain, width, shape, hasEgg) {
   this.grain = grain;    // What grain is it made of?
   this.width = width;    // How many centimeters wide is it?
   this.shape = shape;    // What is the cross-section?
   this.hasEgg = hasEgg;  // Does it have egg yolk as a binder?
   // Add the toString method (defined below).
   // Note that the function name is not followed with parentheses;
   // this is a reference to the function itself, not a function call.
   this.toString = pastaToString;
}

// The function to display the contents of a pasta object.
function pastaToString() {
   return "Grain: " + this.grain + "\n" +
          "Width: " + this.width + " cm\n" +
          "Shape: " + this.shape + "\n" +
          "Egg?:  " + Boolean(this.hasEgg);
}

var spaghetti = new pasta("wheat", 0.2, "circle", true);
// Call the method explicitly.
print(spaghetti.toString());
// The print statement takes a string as input, so it
//  uses the toString() method to display the properties
// of the spaghetti object.
print(spaghetti);

Exibe a saída a seguir.

Grain: wheat
Width: 0.2 cm
Shape: circle
Egg?:  true
Grain: wheat
Width: 0.2 cm
Shape: circle
Egg?:  true

Consulte também

Outros recursos

Objetos com base em protótipo

Objetos do JScript