Cada objeto JavaScript tem um protótipo. O protótipo é também um objeto.
Todos os objetos JavaScript herdam suas propriedades e métodos do seu protótipo.
Protótipos de JavaScript
Todos os objetos JavaScript herdar as propriedades e métodos de seu protótipo.
Objetos criados usando um objeto literal ou com new Object() , herdar de um protótipo chamado Object.prototype.
Objetos criados com new Date() herdar o Date.prototype.
O Object.prototype está no topo da cadeia de protótipos.
Todos os objetos JavaScript (Date, Array, RegExp, Function, ....) herdam da Object.prototype .
Criação de um protótipo
A forma padrão para criar um protótipo de objeto é a utilização de uma função de objeto construtor:
Exemplo
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Com uma função de construtor, você pode usar a new palavra-chave para criar novos objetos a partir do mesmo protótipo:
Exemplo
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
Tente você mesmo " A função de construtor é o protótipo para Person objetos.
É considerada boa prática para a função nome do construtor com uma primeira letra maiúscula.
Adicionando propriedades e métodos para objetos
Às vezes você quer adicionar novas propriedades (ou métodos) a um objeto existente.
Às vezes você quer adicionar novas propriedades (ou métodos) a todos os objetos existentes de um determinado tipo.
Às vezes você quer adicionar novas propriedades (ou métodos) com um modelo de objeto.
Adicionando uma propriedade para um objeto
Adicionando uma nova propriedade para um objeto existente é fácil:
A propriedade será adicionado ao myFather . Não myMother . Não a quaisquer outros objetos pessoa.
Adicionando um método para um objecto
Adicionando um novo método para um objeto existente também é fácil:
Exemplo
myFather.name = function () {
return this.firstName + " " + this.lastName;
};
Tente você mesmo " O método vai ser adicionado ao myFather . Não myMother .
Adicionando propriedades a uma Prototype
Você não pode adicionar uma nova propriedade para um protótipo da mesma maneira que você adicionar uma nova propriedade a um objeto existente, porque o protótipo não é um objeto existente.
Para adicionar uma nova propriedade para um construtor, você deve adicioná-lo à função de construtor:
Exemplo
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"
}
Tente você mesmo " propriedades de protótipo podem ter valores de protótipo (valores padrão).
Adicionando métodos a um protótipo
Sua função de construtor também pode definir métodos:
Exemplo
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.name = function() {return this.firstName + " " + this.lastName;};
}
Tente você mesmo " Usando o prototype Propriedade
O JavaScript prototype propriedade permite adicionar novas propriedades a um protótipo existente:
Exemplo
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Tente você mesmo " A propriedade protótipo JavaScript também permite adicionar novos métodos para um protótipo existente:
Exemplo
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
Tente você mesmo " Apenas modificar seus próprios protótipos. Nunca modifique os protótipos de objetos JavaScript padrão.