質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

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

Q&A

4回答

3670閲覧

JSのクラスはオブジェクトではないのですか?

spablock

総合スコア49

JavaScript

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

0グッド

0クリップ

投稿2017/05/16 02:24

JSのクラスはオブジェクトではないのですか?

他の言語は、クラスを具現化したインスタンスはオブジェクトの一種なんですね。
確かクラスもオブジェクトですよね。

調べたところ下記のようなコメントがあり気になります。

>>>
確かに そのようなイメージを持たれがちですが、通常 クラスはオブジェクトとは言いません。
通常 オブジェクトと言った場合はインスタンスを表します。
ただしオブジェクト指向プログラミングと言った場合には また別の意味になります、オブジェクト指向プログラミングと言った場合には オブジェクト的なプログラミングを指向する全般的な要素みたいな感じです、ここではクラスも含まれるのでクラスもオブジェクトと言うイメージを持たれがちになります。

・インスタンスとプロパティについて
>>>
まず変数と言う箱があって、その箱(変数)にオブジェクト(インスタンス:実態)が代入されます。
オブジェクト(インスタンス:実態)はプロパティ(変数)と言うポケット(箱でも良いですが)を持っていると言うイメージです。

と情報があったのですが、始めにある変数とはクラスの事ではないのですよね。
クラスはあくまで設計図であって箱や変数ではないらしいので。
すると初めにある変数とはいったい何なのでしょうか?
自分で変数をまず定義するのが決まったルールでこのじさくの変数の事を言っていると思いますか?

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

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

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

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

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

Zuishin

2017/05/16 02:31

どこの情報かわかりませんが、JavaScript のことではないと思いますよ。JavaScript の入門書を読むことをお勧めします。
Zuishin

2017/05/16 02:32

JavaScript と Java が紛らわしいので注意してください。この二つは完全に別物です。
退会済みユーザー

退会済みユーザー

2017/05/16 03:15 編集

質問が途中で変わってませんか? 引用される際には引用元を明記された方が良いかと思います。引用元の説明の背景も分かりづらいので。
think49

2017/05/16 03:27

https://okwave.jp/qa/q9325321.html の amanojaku1 さんの回答の転記ですね。文章は正しく「引用」しましょう。引用であれば書き込んだ人へ許可を求める必要はありませんが、転記は問題です。
harashow1701

2017/05/16 08:18

引用の際に出典元を明記することは最低限のマナーです。
guest

回答4

0

そもそも、JavaScriptはプロトタイプベースの言語ですので、インスタンスと離れた「クラス」という概念は存在しません

ES6にclass構文はできましたが、これも

ECMAScript 6 で導入された JavaScript クラスは、JavaScript にすでにあるプロトタイプベース継承の糖衣構文です。クラス構文は、新しいオブジェクト指向継承モデルを JavaScript に導入しているわけではありません

というようなものです。

投稿2017/05/16 02:34

maisumakun

総合スコア145183

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

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

spablock

2017/05/16 02:56

クラスができたと聞いたのですが、ちゃんとしたクラスは相変わらずなくあくまでプロトタイプが少しクラスに近づいた程度なのですね。 するとこのクラスもどきは、オブジェクトなのですか? またインスタンスが入っている初めにある変数とは、いったい何なのでしょうか?
guest

0

JSのクラスはオブジェクトではないのですか?

「クラス」というのがES6のclass構文で作られるもののことで、「オブジェクト」というのがObjectコンストラクタのインスタンス(Objectコンストラクタを継承したコンストラクタのインスタンスを含む)であるもののことであるという意味で使っているのであれば、ES6に対応した環境(最新のNode.js等)で下記を実行すればすぐにわかることです。

JavaScript

1class A {} 2console.log(A instanceof Object);

投稿2017/05/16 21:28

編集2017/05/16 21:32
raccy

総合スコア21735

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

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

0

JSのクラスはオブジェクトではないのですか?

Javascriptにおいてクラスというのは存在しません。全てオブジェクトです。
(なんでも、最近になってクラス構文が導入されたらしいのですが、とりあえずおいといて。)

すると初めにある変数とはいったい何なのでしょうか?

オブジェクトです。

投稿2017/05/16 02:34

yoorwm

総合スコア1305

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

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

Zuishin

2017/05/16 02:42

変数の中身がオブジェクトですね。変数自身がオブジェクトではありません。
spablock

2017/05/16 02:59

クラスができたと聞いたのですが、ちゃんとしたクラスは相変わらずなくあくまでプロトタイプが少しクラスに近づいた程度なのですね。 するとこのクラスもどきは、オブジェクトなのですか? またインスタンスが入っている変数とはクラスをインスタンス化するときに自動的に生成される変数なのでしょうか? これ自体はオブジェクトではなくこの中に入っているインスタンスがオブジェクトなのですね・。
guest

0

JSのクラスはオブジェクトではないのですか?

JSでは全てオブジェクトです。クラス構文はクラスが無いjavascriptにおいて、あくまでクラスっぽく書けるだけのものに過ぎません。

変数はメモリ空間上に確保されたデータ領域です。

投稿2017/05/16 03:06

編集2017/05/16 03:07
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

spablock

2017/05/16 03:08

クラスができたと聞いたのですが、ちゃんとしたクラスは相変わらずなくあくまでプロトタイプが少しクラスに近づいた程度なのですね。 するとこのクラスもどきは、オブジェクトなのですね またインスタンスが入っている変数とはクラスをインスタンス化するときに自動的に生成される変数なのでしょうか? これ自体はオブジェクトではないという意見もありますが、どうなのでしょうか? この中に入っているインスタンスがオブジェクトなのですかね?
退会済みユーザー

退会済みユーザー

2017/05/16 03:12

クラスに少し近づいてすらいません。クラス構文があるだけでクラスはjavascript には存在しません。 変数は自動的に生成されないと思いますが。。。 変数の中に入ってるものはオブジェクトであってます。
spablock

2017/05/16 03:15

インスタンスはオブジェクトなのですね。 するとインスタンスが入っている変数は自分で宣言した変数という事を言っているのですかね。 インスタンスはオブジェクトなのなら、別に変数に入れなくても、単体で存在できますよね。 この方が何となく変数を作って入れているだけなのですかね? 恐らくですが
退会済みユーザー

退会済みユーザー

2017/05/16 03:19

存在は出来るけどどこからも参照されていないのであれば、存在し続けることは出来ないでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問