結論として:
家族と同じように、父親は祖父の息子、子供の父親、そして妻の夫です。プロトタイプオブジェクトも「複数のジョブ」です。
AがBnewから来ている場合、AをBのインスタンスと呼びます。Aの暗黙的なプロトタイプオブジェクトは、Bの明示的なプロトタイプオブジェクトと同等です。
以下は、次のコードと関係図を使用した簡単な説明です。
<!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>
関係図
2つのインスタンスオブジェクトxhとxlは、コンストラクターMaliに従って生成されるため、xhとxlの暗黙のプロトタイプオブジェクトは、Maliの表示プロトタイプオブジェクトと同じです。xh._ _プロト__全てMali.prototypeに等しいです。息子が父親の父親の祖父を呼んでいるように、彼らはすべて同じ人物であり、異なって呼ばれています。
また、Maliのプロトタイプオブジェクト(とりあえずCと呼びましょう)は新しいObjectオブジェクトであるため、このオブジェクト自体(Cオブジェクト)もインスタンスオブジェクトです。(新しいものはすべてインスタンスオブジェクトです)Cオブジェクトの暗黙のプロトタイプは、オブジェクトの表示されたプロトタイプオブジェクト(Dオブジェクト)と同等です。
デフォルトでは、Objectの暗黙的なオブジェクトはnullです。
xh.run(); Xiaohongは、自分でrunメソッドを持っていないため、runメソッドを呼び出したいので、プロトタイプオブジェクト(Cオブジェクト)を探しに行きましたが、Cオブジェクトがなかったので、検索を続け、Dオブジェクトを見つけ、Dを見つけました。オブジェクトにはこのメソッドがあるため、Xiaohongはrunメソッドを呼び出します。Xiao Hongxunが呼び出す必要のあるメソッドのプロセスでたどるルートは、プロトタイプチェーンと呼ばれます。
エラーがある場合は、お気軽に訂正してください。ご不明な点がございましたら、メッセージを残してご相談ください。