Propriedades e métodos que podem ser acessados por todas as instâncias que podem ser acessadas em JavaScript no JavaScript. parte do conhecimento.
As definições de tipo básico são as seguintes:
Copie o código do código da seguinte forma:
function pessoa () {}
Person.prototype = {
Construtor: Pessoa,
Nome: "Pessoa",
Idade: 100,
Amigos: [a "," b "] ,,
getName: function () {
Retornar este.name;
}
};
Defina os exemplos de duas pessoas, modifique a propriedade Nome na instância (o atributo é definido no protótipo), o código de teste é o seguinte
Copie o código do código da seguinte forma:
var p1 = new Person ();
var p2 = nova pessoa ();
document.write (p1.name+"<br/>");
document.write (p2.name+"<br/>");
p1.name = "p1";
document.write (p1.name+"<br/>");
document.write (p2.name+"<br/>");
Document.Write (P1.HasownProperty ("Nome")+"<br/>");
Document.Write (P2.HasownProperty ("Nome")+"<br/>");
document.write (object.keys (p1)+"<br/>");
document.write (object.keys (p2)+"<br/>");
Document.Write (Object.get.getownPropertyNames (Person.prototype)+"<br/>");
Document.Write (Person.prototype.name+"<br/>");
Após o teste, pode -se descobrir que P1.Name = "P1" não modifica o valor do nome, mas adicione um atributo de nome ao NAMEPE na instância P1. O último objeto. Toda a transmissão em JS é uma transmissão de valor. código para ilustrar esse problema.
Copie o código do código da seguinte forma:
var obj = new Object ();
obj.name = "obj";
função changeObj (o) {
o.name = "alterado";
o = new Object ();
o.name = "newobj";
}
ChangeObj (OBJ);
document.write (obj.name);
No método alterações, o = new Object () não modifica o valor do parâmetro O, mas corta o relacionamento de referência original, então o resultado não é newobj, mas mudou, mas alterado
Próximo teste para modificar o atributo de amigos no protótipo no primeiro exemplo.
Copie o código do código da seguinte forma:
p1.friends.push ("c");
document.write (p1.friends+"<br/>");
document.write (p2.friends+"<br/>");
p1.friends = ["x", "y", "z"];
document.write (p1.friends+"<br/>");
document.write (p2.friends+"<br/>");
Document.Write (P1.HasownProperty ("Friends")+"<br/>");
Document.Write (P2.HasownProperty ("Friends")+"<br/>");
document.write (object.keys (p1)+"<br/>");
document.write (object.keys (p2)+"<br/>");
Document.Write (Object.get.getownPropertyNames (Person.prototype)+"<br/>");
Document.Write (Person.prototype.friends+"<br/>");
Os resultados do teste são basicamente os mesmos do primeiro teste.
Com base nesses dois resultados do teste, verificou -se que os atributos do tipo de valor no protótipo não podem ser diretamente modificados na instância (é claro, esse tipo de valor não deve ser definido no protótipo.