🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

196閲覧

prototypeオブジェクトプロパティとは -JavaScript-

slimat

総合スコア57

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/12/10 01:19

編集2019/12/10 02:53

こんにちは.

オブジェクトモデルの詳細に以下の文があります.

すべてのオブジェクトは(Object を除いて) proto オブジェクトプロパティを持ちます。また、すべての関数は prototype オブジェクトプロパティを持ちます。

2つ目の文の"prototypeオブジェクトプロパティ"とは, __proto__プロパティのことなのでしょうか.

宜しくお願い致します.


追記①

prototypeオブジェクトプロパティとは, 単にprototypeプロパティのことなのでしょうか.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2019/12/10 01:38 編集

「__proto__」がマークダウンされています「```__proto__```」のようにしてみてください
slimat

2019/12/10 01:40

ありがとうございます. 編集します.
guest

回答2

0

ベストアンサー

以下の括弧書き部分を、これから説明する(あるいは、理解している人向け)という文脈では?

関数は(コンストラクタとなりうるので)prototype オブジェクトプロパティを持ち、Objectを除くすべてのオブジェクトは(そのコンストラクタの prototype を参照した) __proto__ を持ちます。

とにかく、引用範囲だけでは prototype__proto__ を事実として持っているという説明に過ぎません。

違いについては過去のご質問でも (MDN記述)両者を混同してはいけないに対する意見を述べました。

投稿2019/12/10 02:10

AkitoshiManabe

総合スコア5434

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

slimat

2019/12/10 02:53

ご回答ありがとうございます. prototypeオブジェクトプロパティとは, 単にprototypeプロパティのことなのでしょうか.
AkitoshiManabe

2019/12/10 03:06 編集

そのように考えて差し支えないです。 (質問の)リンク先の冒頭でも「プロトタイプオブジェクト (prototypical object) という概念」が説明されていますが、その概念を実現する実装が 「コンストラクタ関数の持つ prototype プロパティ」です。インスタンスは「prototype プロパティへの参照」となる __proto__ プロパティ(仕様では[[Prototype]])を持つと解釈してよいでしょう。
slimat

2019/12/10 03:12

承知致しました. ご丁寧にありがとうございました.
slimat

2019/12/10 07:42

prototypeオブジェクトプロパティー① というワードは分解するならば, "prototype"と"オブジェクトプロパティ"に分解できるのでしょうか. その場合, オブジェクトプロパティ というワードの意味は何になるのでしょうか. それとも, "prototype"をカタカナに変換し, "プロトタイプオブジェクトプロパティ"とし, これをプロトタイプオブジェクトを表すプロパティと解釈し, ここから①はprototypeプロパティを示していると解釈すればよいのでしょうか.
AkitoshiManabe

2019/12/10 07:52

後者の解釈ですね。MDNの翻訳にある "__proto__ オブジェクトプロパティ"も同様で、"プロトタイプオブジェクトの参照" を表す "プロパティ"です。この解釈なら「プロトタイプオブジェクト (prototypical object) という概念」を自然に理解できるはずです。
slimat

2019/12/10 08:15

承知致しました. ありがとうございました.
guest

0

別物です。
とっても深くて難しい話なので、わたしも納得いくまでの解説はしてさしあげられないのですが、

JavaScript

1const fn = function(){}; 2console.dir(fn);

とテストしてみてください。
中身に__proto__prototypeどちらも存在しているのが確認できると思います。

投稿2019/12/10 01:38

編集2019/12/10 02:32
H40831

総合スコア975

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

slimat

2019/12/10 02:28

ご回答ありがとうございます. ご回答のコードの1行目をコンソールにて入力すると以下のエラーが出るのですが, どうしたら良いでしょうか. Uncaught SyntaxError: Unexpected token '=>'
H40831

2019/12/10 02:31

ごめんなさい、普通にtypoしましたw なんかアロー関数とfunction関数の合体になっちゃってましたね。 ただしくは function(){} ですw(いつもの関数の書き方です)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問