JavaScript のプロトタイプを理解しています。しかし、prototype プロパティと非表示のプロトタイプ リンクの違いに混乱してしまいます。また、オブジェクトプロトタイプリンクと関数プロトタイプリンクの違いは?
誰かが同じことを示すための非常に基本的な例を提供してくれませんか (主にプロトタイプ リンク/チェーン...オブジェクト プロトタイプ リンクと関数プロトタイプ リンクの両方に関してプロパティを検索する方法など)
JavaScript のプロトタイプを理解しています。しかし、prototype プロパティと非表示のプロトタイプ リンクの違いに混乱してしまいます。また、オブジェクトプロトタイプリンクと関数プロトタイプリンクの違いは?
誰かが同じことを示すための非常に基本的な例を提供してくれませんか (主にプロトタイプ リンク/チェーン...オブジェクト プロトタイプ リンクと関数プロトタイプ リンクの両方に関してプロパティを検索する方法など)
Document Object Model (DOM) は、JavaScript における継承の美しい例です。
があると想像してくださいdiv。のインスタンスですHTMLDivElement。
var div = document.createElement('div');
div instanceof HTMLDivElement; // -> true
div instanceof HTMLElement; // -> true
div instanceof Element; // -> true
div instanceof Object; // -> true
divはObjectであり、 にあるすべてのメソッドとプロパティを含みますHTMLDivElement.prototype。プロパティの下にありますが、アクセス__proto___する必要があるという意味ではありません。他の言語のインクルードのようなものです。div.__proto__.insertBeforeinsertBefore
つまりdiv.__proto__、 を指していHTMLDivElement.prototypeます。
prototypeオブジェクトです。__proto__そのため、独自のポインターを持つことができます。この場合、 はオブジェクトであり、を指している があるため、すべてHTMLDivElementのメソッドとプロパティが含まれます。ポインターと検索スタックがなくなるまで、このパスをたどります。prototype__proto__HTMLElement.prototypeObject.prototype__proto__
newこれを説明するためにキーワードを使用しないようにしました。それが役立つことを願っています...