introduzir
O protótipo refere -se ao tipo de objetos criados com instâncias de protótipo e criar novos objetos, copiando esses protótipos.
texto
Para o modo de protótipo, podemos usar o recurso de herança de protótipo exclusivo do JavaScript para criar objetos, ou seja, um objeto é criado como o valor do atributo de protótipo de outro objeto. O próprio protótipo objeto utiliza efetivamente os objetos criados por cada construtor. Por exemplo, se um protótipo de construtor contiver um atributo de nome (consulte o exemplo abaixo), os objetos criados através deste construtor terão esse atributo.
Olhando para a definição de padrões de protótipo na literatura existente, não há JavaScript. Você pode achar que muitas das explicações são sobre classes, mas a realidade é que o JavaScript baseado na herança do protótipo evita completamente o conceito de classe. Simplesmente copiamos o objeto existente para criar o objeto.
A herança do protótipo real é proposta como a versão mais recente do padrão ECMAScript5. O método Object.Create é usado para criar esse objeto. Este método cria um objeto especificado. O protótipo de seu objeto possui um objeto especificado (ou seja, o primeiro objeto de parâmetro passado pelo método) e também pode conter outros atributos especificados opcionais. Por exemplo, Object.Create (Prototype, OptionScriptorObjects), você também pode ver esse uso no exemplo a seguir:
A cópia do código é a seguinte:
// porque não é um construtor, não precisa ser capitalizado
Var SOMECAR = {
drive: function () {},
Nome: 'Mazda 3'
};
// Crie um carro novo com object.create x
var outroCAR = object.create (SOMECAR);
outro caro.name = 'Toyota Kami';
Object.Create executa você herdado diretamente de outros objetos. Usando o segundo parâmetro deste método, você pode inicializar propriedades adicionais. Por exemplo:
A cópia do código é a seguinte:
Var veículo = {
getModel: function () {
console.log ('O molde do veículo é:' + this.model);
}
};
var carro = object.create (veículo, {
'eu ia': {
Valor: my_global.nextId (),
enumerável: verdadeiro // padrão gravável: falso, configurável: false
},
'modelo': {
Valor: 'Ford',
enumerável: verdadeiro
}
});
Aqui, você pode usar o objeto literal para passar no segundo parâmetro do Object.create para usar o objeto literal para inserir as propriedades adicionais a serem inicializadas e sua sintaxe é a mesma que o objeto.DefineProperties ou Object.DefineProperty Method Tys. Ele permite definir propriedades de propriedades, como enumerável, gravável ou configurável.
Se você deseja implementar o modo de protótipo, em vez de usar o Object.Create diretamente. Você pode usar o código como o seguinte para implementar o exemplo acima:
A cópia do código é a seguinte:
var veículo prototipo = {
init: function (carmodel) {
this.model = carmodel;
},
getModel: function () {
console.log ('O molde do veículo é:' + this.model);
}
};
Função Veículo (Modelo) {
função f () {};
F.Prototype = veículoPrototype;
var f = novo f ();
f.init (modelo);
retornar f;
}
var carro = veículo ('Ford Escort');
car.getModel ();
Resumir
O uso do modo de protótipo no JavaScript é simplesmente onipresente. Muitos outros modos também são baseados no protótipo, por isso não vou dizer muito. O que você deve prestar atenção aqui é o problema de cópia superficial e cópia profunda para evitar problemas de citação.