<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en-GB-x-hixie">HTML Standard</cite> (<time>2016-05-14 09:55:50 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#concept-custom-element-definition-prototype">https://html.spec.whatwg.org/#concept-custom-element-definition-prototype</anchor-external></li></ul></refs></section><section><h1><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトタイプ</f> (カスタム要素定義)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">カスタム要素定義</anchor>は、<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>プロトタイプ</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">prototype</rt></rubyb></f></dfn>を持ちます。
<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトタイプ</f>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト</anchor>です。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal></src></p></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトタイプ</anchor>を用いる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">オブジェクト指向</anchor>を特に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトタイプ型</anchor>と呼んで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クラス型オブジェクト指向</anchor>と区別します。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>である <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Prototype.js</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JavaScript</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">言語</anchor>の概念である「<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロトタイプ</anchor>」
と直接の関係はありません。</p></section><section><h1>歴史</h1><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite>ECMAScript Language Specification (HTML version)</cite> (<time>2009-04-03 04:43:48 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://bclary.com/2004/11/07/#a-4.3.5">http://bclary.com/2004/11/07/#a-4.3.5</anchor-external></figcaption><blockquote><p>A <dfn xml:lang="en">prototype</dfn> is an <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">object</anchor> used to implement structure, state, and behaviour inheritance in <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor>.
When a <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">constructor</anchor> creates an <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">object</anchor>, that <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">object</anchor> implicitly references the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">constructor</anchor>'s associated
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prototype</anchor> for the purpose of resolving <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">property</anchor> references. The <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">constructor</anchor>'s associated <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prototype</anchor>
can be referenced by the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">program</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">expression</anchor> <code class="JS" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">constructor</anchor>.<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prototype</anchor></code>, and <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">properties</anchor>
added to an <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">object</anchor>'s <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prototype</anchor> are shared, through <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">inheritance</anchor>, by all <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">objects</anchor> sharing the <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">prototype</anchor>.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite xml:lang="en">Revamp interface bindings (#313)</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">tobie</anchor>著, <time>2017-02-21 07:17:07 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/heycam/webidl/commit/4a8f57e276369db7ea5fb09974a09b0ca5d276dd">https://github.com/heycam/webidl/commit/4a8f57e276369db7ea5fb09974a09b0ca5d276dd</anchor-external></p></section></body></html>