いつも拝見させていただいています。
現在JavaScriptを学習しているのですが、教えていただきたいことがあります。
プロパティなのですが、私の中では3種類あると思っています。
1)型に対するプロパティ
function Rectangle(){};
Recangle.p1 = 10;
2)プロトタイプに対するプロパティ
var r = new Rectangle();
r.prototype.p2 = 30;
3)インスタンスに対するプロパティ
var r = new Rectangle();
r.p3 = 50;
こんな感じであると思っていますが、あっていますでしょうか?
2と3の場合ではプロパティ名が同じであれば2の方が隠されると思っています。
ここが間違っているよ、とか、全然ちがうよとか、それでいいよとか、何かしらのお返事お待ちしております。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
> function Rectangle(){};
> Recangle.p1 = 10;
これはRectangleという関数オブジェクトに
プロパティを追加してるだけです。
> var r = new Rectangle();
> r.prototype.p2 = 30;
結果的には同じだけど、普通は
| Rectangle.prototype.p2 = 30;
の様にしないかな。newする必要もなくなりますし。
プロパティが何種類もあると言うよりは、
参照の時prototypeというプロパティがちょっと特別扱いされるだけ。
No.2
- 回答日時:
プロパティは3種類ではありません。
オブジェクトには沢山のプロパティがあり、オブジェクト毎に
名前も用途も違います。ただ、プロパティのデータ型という意味では
数値、文字列、真偽値、オブジェクトくらいでしょうか。といっても
「オブジェクト」というのが「何でもあり」なんですけどね。
回答ありがとうございます。
先に回答していただいた方のお礼で書いたのですが、私が注目している、気にかけているのは、1のタイプであれば、型から出ないと呼び出せないタイプ。例えばNumber.NEGATIVE_INFINITYなどのようなもの。
2のタイプですと、Rectangleから生成されたインスタンスのすべてで設定されるもの(ただし3を使って同名のプロパティをインスタンスに設定されると隠される)。
3のタイプは、インスタンスに対してつけられたプロパティで、同じRectangleから生成されたほかのインスタンスには影響しないプロパティ。
という意味での3タイプがあるのかなと思っております。
この3種類でいいのか、もっとほかにあるのかなという意味での質問でした。
例えば
r.p,widthのようなオブジェクトのオブジェクトのプロパティというようなタイプというのは上記の3、または2に当てはまると考えております。
よろしくお願いいたします。
No.1
- 回答日時:
javascriptにおいては、全てのものがオブジェクトとして取り扱われます。
そのオブジェクトの多くはプロパティをもつことができます。
そう言う意味では例示された3タイプにしばられることはないと思います。
回答ありがとうございます。
私が例に挙げた3タイプ以外ですとどういうものがあるのでしょうか。
できましたら、そこを教えていただけたらなと思います。
もしかしたら私の説明不足だったかもしれませんが、私が注目している、気にかけているのは、1のタイプであれば、型からでないと呼び出せないタイプ。例えばNumber.NEGATIVE_INFINITYなどのようなもの。
2のタイプですと、Rectangleから生成されたインスタンスのすべてで設定されるもの(ただし3を使って同名のプロパティをインスタンスに設定されると隠される)。
3のタイプは、インスタンスに対してつけられたプロパティで、同じRectangleから生成されたほかのインスタンスには影響しないプロパティ。
という意味での3タイプがあるのかなと思っております。
この3種類でいいのか、もっとほかにあるのかなという意味での質問でした。
例えば
r.p,widthのようなオブジェクトのオブジェクトのプロパティというようなタイプというのは上記の3、または2に当てはまると考えております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) フォルダーのプロパティで表示されるファイル数とフォルダーに実際に存在するファイル数が一致しない 2 2022/07/27 13:16
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Visual Basic(VBA) クラス デフォルトプロパティの作り方 1 2022/10/23 11:41
- C言語・C++・C# visual studio 2019 についての質問です 1 2022/09/21 09:58
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- その他(ソフトウェア) ダウンロードしたファイルの「種類」が「Windowsmediaplayer」に変わってしまい、開くこ 2 2023/07/03 21:45
- その他(OS) デスクトップにアイコンが出来ました。これは消しても良いですか? 2 2022/11/13 10:09
- ドライブ・ストレージ ボリュームFとメインGのドライブの空き領域に違いがあります。 プロパティをみるとファイル数は同じでし 4 2023/08/12 10:04
- USBメモリー・SDカード・フラッシュメモリー プリンタのドライバーをUSB Flash Diskに保存したい。 4 2023/05/23 23:30
- Windows 10 SONYの音楽ソフト「x-アプリ」について 3 2023/01/29 19:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムについて。
-
スマホ上で、左右スワイプで次...
-
初心者です。gulpでコンパイル...
-
プログラムがうまく動きません...
-
jsで質問です。 displayプロパ...
-
【Google Apps Script】「ライ...
-
console.logがどうしても2つ機...
-
指定時間になったら、WEBサイト...
-
Googleフォームで選択肢に応じ...
-
セレクトを全て選択されていな...
-
イラストレーター、縦中横のシ...
-
sessionStorageを調べています。
-
コードレビューをお願いします。
-
セレクトボックスで配列を呼び...
-
jsで、配列内の文章を改行する...
-
jQueryで同じクラス名のものを...
-
HTMLタグに複数のクラスを設定...
-
コードレビューをお願いします。
-
IndexedDB を使ってファイルア...
-
画面遷移を行わずに同一ページ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
var exports = exports || {}; ...
-
HTMLタグに複数のクラスを設定...
-
jsで質問です。 displayプロパ...
-
画面遷移を行わずに同一ページ...
-
Googleフォームで選択肢に応じ...
-
特定の文字列を複数抜き出した...
-
フロントエンドフレームワーク...
-
変数名をどのようにつけるのが...
-
【JS】selectでchangeした時の...
-
React hooksが値を返して配列変...
-
オブジェクトから任意のプロパ...
-
指定時間になったら、WEBサイト...
-
Colorboxがうまく設置できません
-
二次元配列の中の各行の要素を...
-
読み込んだQRコードをフォーム...
-
IndexedDB を使ってファイルア...
-
HTMLで作った時報アプリが動き...
-
GASに文字列として関数を入れる...
-
GASでGoogleフォームの自動返信...
-
①入力フォーム→②確認表示画面→③...
おすすめ情報