marc tech

株式会社MAISON MARCが運営するブログです。Tech Blogとは名ばかりの、採用・福利厚生の情報や、日々の活動記録(?)からエンジニアのくだらない小話までMAISON MARCに関する情報をお伝えするブログとなっています!興味のある方は是非ご覧になってください。

さくっと学ぶ!! ES2015(ES6)入門 〜Class 編〜

こんにちは。 メゾンマークでフロントエンドを担当している、k-taroです。

第3回目はClass記法をみていきます!

概要

JavaScriptでクラス構文を使用できるようになりました。
ES5までのクラス定義方法といえば、functionにコンストラクタ関数としての機能をもたせ、
newをつけて呼び出すとインスタンスが生成できるという方法で実現していました。

まずはコードからみていきましょう!

ES5

function Hoge (name) {
  this.name = name;
}
Hoge.prototype.sayName = function() {
  console.log(this.name);
}

var hoge = new Hoge('ほげ');
hoge.sayName(); // "ほげ"

これが

ES6

class Hoge {
  constructor(name) {
    this.name = name;
  }
  sayName() {
    console.log(this.name);
  }
}

const hoge = new Hoge('ほげ');
hoge.sayName(); // "ほげ"

一つのブラケットの中にクラスを定義できているので、かなり見やすくなっていますね!

解説

classの実装

class記法では新しい機能が実装されているわけではなく、あくまで今までの書き方よりシンプルにかけるようになった。という感じです。
なので内部的には上記のような構造でclassが実装されています。

継承

ES5までのクラスの継承はなかなか複雑な書き方をしていましたが、class記法で書くとすごくシンプルに実装できます。

ES6

class Parent {
  constructor(name) {
    this.name = name;
  }
  sayName() {
    console.log(this.name);
  }
}

class Child extends Parent {
  constructor(name) {
     super(name);
  }
}

const parent = new Parent('親');
const child = new Parent('子');
parent.sayName(); // 親
child.sayName(); // 子

webサイトを作るだけならあまり必要ないかと思いますが、jQueryでwebアプリ作るときなどは重宝すると思います!

まとめ

  • 新しい概念が生まれたわけではなく、新しい記法が増えた!
  • 継承がすごく簡単にかけるようになった!

次回はTemplate stringsについて解説します! それでは!