Devsway

日々の記録とか記憶とか。


前提条件


JavaScriptのクラス式はECMAScript 6以上で有効です。


まずJavaScriptのクラス云々は他のオブジェクト指向言語のクラスとは微妙に違うみたい。


ECMAScript 6 で導入された JavaScript クラスは、JavaScript にすでにあるプロトタイプベース継承の糖衣構文です。

クラス構文は、新しいオブジェクト指向継承モデルを JavaScript に導入しているわけではありません。

だそうです。


つまり他のオブジェクト指向言語と何が違うの?


もっとも大きなところでは型がないこと、でしょうか。


糖衣構文ってことは他の書き方もできるってこと?


そうです。

JavascriptのClassは厳密にいうと特別な関数です。


プロトタイプベースとは?


JavaScriptはプロトタイプという機能を持っています。

詳細については他の記事でやろうと思お。


クラス宣言とクラス式


所詮は(?)関数なんやでって書き方もできます。

機能的にはどっちも同じです。そんなに細かく考えなくて大丈夫でしょう。


クラス宣言書式


たぶん他の言語で馴染みがあるのはこっちの書き方

Class Dog {

getName(){

}

}


クラス式書式


var dog = Dog{

//

}

名前なくてもかけるぞ!😎

var dog = {

}

わかりやすいような、気持ち悪いような。。。


TIPS


巻き上げ(hoisting)とは?

JavaScriptはこんなんがあります。


https://developer.mozilla.org/ja/docs/Glossary/Hoisting


感想


JavaScriptはいろいろ似ているようで独自色が強いからたち悪いのよねぇ。。(ヽ´ω`)



参考


https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes




カテゴリー

オレオレIT用語辞典