2

JavaScript のプロトタイプを理解しています。しかし、prototype プロパティと非表示のプロトタイプ リンクの違いに混乱してしまいます。また、オブジェクトプロトタイプリンクと関数プロトタイプリンクの違いは?

誰かが同じことを示すための非常に基本的な例を提供してくれませんか (主にプロトタイプ リンク/チェーン...オブジェクト プロトタイプ リンクと関数プロトタイプ リンクの両方に関してプロパティを検索する方法など)

4

1 に答える 1

1

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

divObjectであり、 にあるすべてのメソッドとプロパティを含みますHTMLDivElement.prototype。プロパティの下にありますが、アクセス__proto___する必要があるという意味ではありません。他の言語のインクルードのようなものです。div.__proto__.insertBeforeinsertBefore

つまりdiv.__proto__、 を指していHTMLDivElement.prototypeます。

prototypeオブジェクトです。__proto__そのため、独自のポインターを持つことができます。この場合、 はオブジェクトであり、を指している があるため、すべてHTMLDivElementのメソッドとプロパティが含まれます。ポインターと検索スタックがなくなるまで、このパスをたどります。prototype__proto__HTMLElement.prototypeObject.prototype__proto__

newこれを説明するためにキーワードを使用しないようにしました。それが役立つことを願っています...

于 2013-03-02T08:22:23.137 に答える