2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【js】javascript特有の今まで出会ったクラス宣言(オブジェクト宣言)

Last updated at Posted at 2022-12-27

javascript特有のクラス宣言

2022年から新卒エンジニアとして開発していて、これまでjavascript特有のクラス宣言を見てきました。その中には最近知ったものもありましたので、今回は私が今まで見てきたクラス宣言の紹介したいと思います。

ただの連想配列

/*
連想配列に無名関数を設定して擬似クラスを作成する
イニシャライズの代わりにディープクローンをする
*/
const classOne = {
    init() {
        print('============11')
    },
}
const classOneIncetance = { ...classOne }
classOneIncetance.init()

このケースの1番のデメリットはイニシャライズが存在しなく、インスタンスが生成されないことです。今回はディープクローンで擬似的にイニシャライズしていますが、連想配列の階層がもう1つ深くなるとクローンできなくなるので注意が必要です。

new 演算子

/*
オブジェクト型やコンストラクター関数を持つ組み込みオブジェクト型のインスタンスを作成
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/new
*/
function classTwo() {
    this.init = function() {
        print('============22')
    }
}
const classTwoInstance = new classTwo()
classTwoInstance.init()

これが最近知ったクラス宣言です。new演算子を使うことでインスタンスが生成されます。

クラス

/*
一般的なクラス宣言
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes
*/
class classThree {
    init() {
        print('============33')
    }
}
const classThreeInstance = new classThree
classThreeInstance.init()

これがES5から使えるようになったクラス宣言です。newすることでインスタンスが生成されます。
最近ではプライベートなデータやメソッドが持てるようになっています。

最後に

他のクラス宣言の方法を知ってたり、間違いに気づいたたは、コメントお願いします。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?