Primeiro, defina um objeto Obj e o protótipo do objeto é obj._proto_. Podemos usar o método getProTypeOF no ES5 para consultar o protótipo do OBJ. Provamos se o protótipo de OBJ é igual ao objeto.Prototype para provar se o protótipo de OBJ existe. A resposta retorna verdadeira, para que exista. Em seguida, definimos uma função foo () e qualquer função possui seu objeto de protótipo, ou seja, o protótipo da função. Podemos adicionar qualquer atributo ao protótipo da função e compartilhar seus atributos por novo objeto instanciado (os dois exemplos a seguir serão introduzidos em detalhes).
function foo () {} foo.prototype.z = 3; var obj = new Foo (); obj.x = 1; obj.y = 2; obj.x //1obj.y //2obj.z // 3typeof obj.tostring; //functionObj.valueof (); // foo {x: 1, y: 2, z: 3} obj.HasownProperty ('z'); //falsoAqui, o protótipo da OBJ (_proto_) aponta para a propriedade Prototype da função Foo, o protótipo de Foo.Prototype aponta para Object.prototype e o final da cadeia de protótipo é nulo. Através do HasOwnProperty, podemos verificar se a propriedade Z está no OBJ. Mostra falsa. Não existe uma propriedade Z no OBJ, mas ao procurar sua cadeia de protótipos, descobrimos que ela está no foo.prototype, então obj.z = 3, e para o primeiro caso obj.valueof () e a toques estão em objetos.Protypes, portanto, qualquer objeto tem essas duas propriedades, porque o protótipo de qualquer objeto.Protipo. Claro, exceto para o seguinte caso especial,
var obj2 = object.create (null); obj2.valueof (); //indefinido
Object.Create () cria um objeto vazio e o protótipo desse objeto aponta para os parâmetros. O exemplo abrangente a seguir mostra como implementar uma classe para herdar outra classe
// Declare uma pessoa de função personal construtora (nome, idade) {this.name = name; this.age = idade;} pessoa.prototype.hi = function () {console.log ('oi, meu nome é' +this.name +', minha idade é' +this.age);}; pessoa.prototype.legs_num = 2; Person.protype.arms_num = 2; person.protypey.num.num = 2; ! ');}; função aluno (nome, idade, classe) {Person.call (este, nome, idade); this.classNum = ClassNum;} // Crie um objeto vazio Student.prototype = object.Create (PERSON.Prototype); // Construtor especifica a função para criar um objeto. Student.Prototype.Constructor = Student; Student.prototype.hi = function () {console.log ('oi, meu nome é'+this.name+', minha idade é'+this.age+'e minha classe é'+this.classnum);}; '+sub);}; // instanciar um objeto bosnvar bosn = new Student (' Bosn ', 27,' classe 3 '); bosn.hi (); // oi, meu nome é bosn, minha idade tem 27 anos e minha classe é classe 3bosn.legs_num; //2bosn.walk (); // bosn está andando! bosn.learns ('matemática'); // bosn está aprendendo matemáticaA pessoa construtora e o aluno estão esse ponto para o objeto instanciado (BOSN) e o protótipo desse objeto aponta para o protótipo do construtor.
Usamos o método object.Create () para criar um objeto vazio, e o protótipo desse objeto é Pessoa.Prototype. A vantagem de escrever isso é que podemos criar qualquer atributo do StudNet.Prototype por nós mesmos sem afetar o atributo Pessoa. Prototipo e pode herdar os atributos originais no Pessoa.prototipo, porque o aluno da subclasse herda a pessoa da classe base. Se você escrever Person.prototype = Student.prototype diretamente, os dois apontam para um objeto ao mesmo tempo. Ao adicionar atributos ao Student.prototype, os mesmos atributos também serão adicionados à cadeia de protótipos da pessoa.
Para o método de chamada no aluno do construtor, isso aponta para o objeto instanciado do aluno recém -criado e herda a chamada.
Student.Prototype.Constructor = Student, o significado desta frase é especificar que o aluno é a função que cria o objeto Student.Prototype. Se você não escrever esta frase, a função do objeto ainda é pessoa.
Existem três maneiras de implementar a herança.
função pessoa (nome, idade) {this.name = name; this.age = Age;} function student () {} student.prototype = Person.prototype; //1student.prototype = object.create (Person.prototype); //2student.prototype = new Person (); // 3A cadeia de protótipos JS acima e a análise de herança (primeira experiência) é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.