A relação entre construtor, objeto de instância e objeto de protótipo em js

Em conclusão:

Assim como em uma família, o pai é o filho do avô, o pai da criança e o marido da esposa. O objeto de protótipo também é "vários trabalhos".
Se A vem de B novo, chamamos A de uma instância de B. O objeto de protótipo implícito de A é equivalente ao objeto de protótipo explícito de B.
Abaixo está uma explicação simples com o seguinte código e diagrama de relacionamento.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			function Mali(name, color) {
    
    
				this.name = name;
				this.color = color;
				this.eat = function(){
    
    
					alert('吃')
				}
			}
			Mali.prototype.jump = function() {
    
    
				alert('跳高高')
			}
			
			Object.prototype.run = function(){
    
    
				console.log('快跑')
			}
			
			var xh = new Mali("xh", 'red');
			var xl = new Mali("xl", 'green')

			console.log(xh)
			console.log(xl)
			xh.eat();
			xl.jump();
			xh.run();
			xh.hat();
		</script>
	</body>
</html>

Diagrama de relacionamento
gráfico de relação
Como os dois objetos de instância xh e xl são gerados de acordo com o construtor Mali, o objeto protótipo implícito de xh e xl é igual ao objeto protótipo de exibição de Mali. xh._ _ proto __ são todos iguais a Mali.prototype. Assim como um filho chama o pai de avô do pai, eles são todos a mesma pessoa, chamados de diferentes.
E porque o objeto protótipo de Mali (vamos chamá-lo de C por enquanto) é o novo objeto Object, então este objeto em si (objeto C) também é um objeto de instância. (Os novos são todos objetos de instância) O protótipo implícito do objeto C é equivalente ao objeto protótipo exibido do Objeto (objeto D).
Por padrão, o objeto implícito de Object é nulo.
xh.run (); Xiaohong quer chamar o método run. Como ela não o tem, ela foi encontrar seu objeto protótipo (objeto C). Como resultado, não havia objeto C, então ela continuou a procurar, encontrou o objeto D e encontrou D O objeto tem esse método, então Xiaohong chama o método run.A rota que Xiao Hongxun faz no processo do método que ela precisa chamar é chamada de cadeia de protótipo.

Se houver um erro, sinta-se à vontade para corrigi-lo; se você tiver alguma dúvida, deixe uma mensagem para discussão.

Acho que você gosta

Origin blog.csdn.net/xiaozuo144/article/details/109862906
Recomendado
Clasificación