2016-03-31 4 views
0

など。
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement
https://developer.mozilla.org/en-US/docs/Web/API/WindowJavaScriptインターフェイス

これらとコンストラクタ関数のそれのような他の人が単にインスタンスは、Mozillaがインターフェースとしてそれらを指していても、いますか?

インタフェースとコンストラクタ関数のインスタンス間の違いは何でない場合は?

+3

アン「インターフェース」を実装し、そのようなHTMLAnchorElementとしてDOMインタフェースを実装するオブジェクトを持つことができますが、実際に内に存在するものではありませんJavaScript言語。これは、特定のオブジェクトが持つと予想されるプロパティとメソッドのセットを記述するために仕様で使用されています。多くの場合(WindowおよびHTMLElement)、インターフェイスに正確に対応するクラス/コンストラクタが存在しますが、そうでない場合もあります。いずれの場合でも、インタフェースはインスタンスまたはクラスそのものではなく、単にそれの記述に過ぎません。実際に仕様を読んでいない限り、通常はインターフェイス自体を無視することができます。 –

+0

'var a = {n:1}; var b = {n:2} 'となります。どちらもコンストラクタで作成されていませんが、同じインタフェースを共有していません。それは本質的にインターフェイスによって意味されるものです。それは、そのオブジェクトを通じて利用可能なものの説明/保証です。実際、C#でインターフェイスを見ると、インターフェイスのインスタンスを作成できません。そのインタフェースを実装するクラスは、そのインタフェースで記述されたすべてのメンバを持つことを保証します。 –

+0

@リテラル構文**を使用して作成されたMikeCオブジェクトは、Objectコンストラクタによって作成されます。[* EMCA-262§12.2.6.8*](http://www.ecma-international.org/ecma-262/6.0 /#sec-object-initializer-runtime-semantics-evaluation)を参照してください。 – RobG

答えて

4

World Wide Webコンソーシアム(W3C)は、Web上で使用されている言語や技術の広い範囲のための基準を設定し、標準設定機関です。彼らはブラウザーを作っていませんが、ブラウザーが従わなければならない標準を設定しています。

そこで、それらはオブジェクトの仕様を記述し、この仕様は、開発者がオブジェクトとどのようにオブジェクトがそれらのインタフェースと対話開発者に反応すると「インターフェース」する必要がどのようにすべての詳細を含みます。

しかし、この用語は、ほとんどのOOP環境で暗示するように、インターフェースは「実装」しなければならず、それはブラウザソフトウェアを作るソフトウェアベンダーの仕事です。彼らはコードを書く方法を正確には教えていませんが、仕様はコードが何をすべきか、そしてユーザーがそのコードとやりとりする方法を教えてくれます。

単純な例として、米国では、自動車にはエアバッグが付いている必要があり、エアバッグは特定の方法で作動するはずであるという法律がありますが、政府は実際にエアバッグとエアバッグメーカーそれらが要約された仕様を満たす限り、彼らが望むいかなる方法でも構いません。最後に

、JavaScriptは、オブジェクトのみをインターフェイスを作成するためのメカニズムを有していません。しかし、ブラウザソフトウェアベンダは、例えばdocumentのような組み込みオブジェクトを介してW3C(および他のもの)によって指定された多くの異なるインタフェースを実装しています。

私はdocument.getElementsByTagName("p")を呼び出すと、私はまさにChromeが私のための配列のようなオブジェクトにすべての段落要素を収集するために使用する基礎となるコードを知らない、また私は(通常は)気にしません。私が気にするのは、よく知られた標準化されたオブジェクトdocumentがあり、現代のすべてのブラウザで実装されている標準化されたアプリケーションプログラミングインターフェイス(API)を持っているということです。

2

彼らは彼らとのインターフェースに使用される最も一般的な言語であるJavaScriptのそれ以外の、DOMインタフェースであり、JavaScriptで行うことがほとんどありません。その名前にもかかわらず

w3.org

ドキュメントオブジェクトモデルから関連する引用符のカップル、、。 。 。インタフェースとオブジェクトを指定する言語に依存しない方法です。 。 。 。このドキュメントで指定されているJavaまたはECMAScriptバインディングのような言語固有のバインディングを使用して実装することもできます。

そして:

DOMはXMLやHTML文書を管理するために使用することができるインタフェースを指定します。これらのインタフェースは抽象であることを理解することが重要です。これは、C++の「抽象基本クラス」と同様に、アプリケーションの内部表現にアクセスして操作する方法を指定する手段です。特に、インタフェースは特定の具体的な実装を意味するものではありません。各DOMアプリケーションは、この仕様に示されたインタフェースがサポートされている限り、任意の都合のよい表現でドキュメントを自由に維持することができます。

JavaScriptがインターフェースの概念はありませんが、それはまだHTMLAnchorElement DOM Interface

関連する問題