Os protótipos e fechamentos são os mais comuns, mais difíceis de entender e mais facilmente considerados como duas partes do problema em JavaScript. Obviamente, eles também têm suas extensões, como cadeias de escopo, herança etc. Recentemente, também as li de várias maneiras, virei todas elas e gravei minhas próprias experiências. Escrever sempre tornará minha compreensão mais profunda. (Não tem nada a ver com o título, então suspirei. Toda vez que sinto que entendo, ainda ganho muitas recompensas depois de lê -lo)
Vamos primeiro falar sobre a nova palavra -chave no JavaScript. Geralmente, nós o usamos para criar um objeto de instância de uma classe. Em JavaScript, depois de instantar o objeto, herdamos os atributos e métodos da classe. Vamos demonstrar isso através do código
function pessoa (nome) {this.name = name;} pessoa.age = "23"; PERSON.PROTYPE.SAY = function () {console.log ("eu sou" + this.name);}; var pessoa = nova pessoa ("wang fang"); console.log (Person.name, // wang fang Person.Height // Undefined); pessoa.Say (); // sou wang fang console.log (pessoa.name, // pessoa pessoa.age // 23); pessoa.Say (); //Person.say não é uma funçãoVamos dar uma olhada nesta linha
var pessoa = nova pessoa ("Wang Fang");
O que o novo fez? A seguir é o que o trabalho do mecanismo JS faz
var obj = {}; obj .__ proto__ = pessoa.prototype; var resultado = Person.Call (obj, "wang fang"); retorno tipo de resultado === 'obj'? Resultado: OBJ;1. Crie um novo objeto primeiro
2. Ponto __proto__ de obj para o protótipo de protótipo do protótipo da pessoa e, em seguida, a cadeia de protótipos do objet Obj é estabelecida: obj-> pessoa.prototype-> object.prototype-> null
3. Chame a pessoa que funcione no espaço de execução do objeto OBJ e passe no parâmetro "Wang Fang". É equivalente a var resultado = obj.person ("wang fang"). Depois que esta frase é executada, o OBJ gera o nome do atributo e o atribui a "Wang Fang".
4. Determine o valor de retorno. Se não houver valor de retorno ou um valor não-objeto será retornado, retorne Obj. Caso contrário, o valor de retorno é retornado como um novo objeto (um pouco de torção, operador ternário, verifique por você mesmo)
Resumir:
A principal função da nova palavra -chave do JavaScript é a herança, como mencionado no exemplo acima, mas lembre -se de que a pessoa é uma função, enquanto a pessoa é um objeto. Quanto à diferença entre funções e objetos, escreverei novamente se tiver tempo.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.