• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[初歩]プロパティについて)

[初歩]JavaScriptのプロパティについて

このQ&Aのポイント
  • JavaScriptの学習中に疑問が生じました。プロパティには3種類ありますが、それぞれの違いを教えてください。
  • プロパティには型に対するプロパティ、プロトタイプに対するプロパティ、インスタンスに対するプロパティがあります。それぞれの特徴について教えてください。
  • プロトタイプとインスタンスのプロパティで同じ名前のプロパティがある場合、どちらのプロパティが優先されるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.3

> function Rectangle(){}; > Recangle.p1 = 10; これはRectangleという関数オブジェクトに プロパティを追加してるだけです。 > var r = new Rectangle(); > r.prototype.p2 = 30; 結果的には同じだけど、普通は | Rectangle.prototype.p2 = 30; の様にしないかな。newする必要もなくなりますし。 プロパティが何種類もあると言うよりは、 参照の時prototypeというプロパティがちょっと特別扱いされるだけ。

ape5
質問者

お礼

回答ありがとうございます。 一応、自分が理解しているタイプがあるということだと理解しました。 ありがとうございます。

その他の回答 (2)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

プロパティは3種類ではありません。 オブジェクトには沢山のプロパティがあり、オブジェクト毎に 名前も用途も違います。ただ、プロパティのデータ型という意味では 数値、文字列、真偽値、オブジェクトくらいでしょうか。といっても 「オブジェクト」というのが「何でもあり」なんですけどね。

ape5
質問者

お礼

回答ありがとうございます。 先に回答していただいた方のお礼で書いたのですが、私が注目している、気にかけているのは、1のタイプであれば、型から出ないと呼び出せないタイプ。例えばNumber.NEGATIVE_INFINITYなどのようなもの。 2のタイプですと、Rectangleから生成されたインスタンスのすべてで設定されるもの(ただし3を使って同名のプロパティをインスタンスに設定されると隠される)。 3のタイプは、インスタンスに対してつけられたプロパティで、同じRectangleから生成されたほかのインスタンスには影響しないプロパティ。 という意味での3タイプがあるのかなと思っております。 この3種類でいいのか、もっとほかにあるのかなという意味での質問でした。 例えば r.p,widthのようなオブジェクトのオブジェクトのプロパティというようなタイプというのは上記の3、または2に当てはまると考えております。 よろしくお願いいたします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

javascriptにおいては、全てのものがオブジェクトとして取り扱われます。 そのオブジェクトの多くはプロパティをもつことができます。 そう言う意味では例示された3タイプにしばられることはないと思います。

ape5
質問者

お礼

回答ありがとうございます。 私が例に挙げた3タイプ以外ですとどういうものがあるのでしょうか。 できましたら、そこを教えていただけたらなと思います。 もしかしたら私の説明不足だったかもしれませんが、私が注目している、気にかけているのは、1のタイプであれば、型からでないと呼び出せないタイプ。例えばNumber.NEGATIVE_INFINITYなどのようなもの。 2のタイプですと、Rectangleから生成されたインスタンスのすべてで設定されるもの(ただし3を使って同名のプロパティをインスタンスに設定されると隠される)。 3のタイプは、インスタンスに対してつけられたプロパティで、同じRectangleから生成されたほかのインスタンスには影響しないプロパティ。 という意味での3タイプがあるのかなと思っております。 この3種類でいいのか、もっとほかにあるのかなという意味での質問でした。 例えば r.p,widthのようなオブジェクトのオブジェクトのプロパティというようなタイプというのは上記の3、または2に当てはまると考えております。

関連するQ&A