最近のブラウザの JavaScript では class 構文が動く

【スポンサーリンク】

Firefox 45 正式版がリリースされたことにより、FirefoxGoogle ChromeMicrosoft Edge では、デフォルトで JavaScript の class 構文がサポートされるようになりました。つまり、他のプログラミング言語でも馴染みのあるクラスを用いたオブジェクト指向プログラミングが可能となります。

class Browser {
    constructor(name) {
        this.name = name;
    }

    greet() {
        console.log('Hello, ' + this.name);
    }
}

var edge = new Browser('Edge');
edge.greet();    // Hello, Edge

var chrome = new Browser('Chrome');
chrome.greet();  // Hello, Chrome

var firefox = new Browser('Firefox');
firefox.greet(); // Hello, Firefox

クラスの継承もサポートします。

class LegacyBrowser extends Browser {
    greet() {
        console.log('Good bye, ' + this.name);
    }
}

var ie = new LegacyBrowser('IE');
ie.greet();    // Good bye, IE

なお、今まではプロトタイプを用いた次のようなコードでオブジェクト指向プログラミングを実現していました。

var Browser = (function () {
    function Browser(name) {
        this.name = name;
    }
    Browser.prototype.greet = function () {
        console.log('Hello, ' + this.name);
    };
    return Browser;
}());

var edge = new Browser('Edge');
edge.greet();    // Hello, Edge

var chrome = new Browser('Chrome');
chrome.greet();  // Hello, Chrome

var firefox = new Browser('Firefox');
firefox.greet(); // Hello, Firefox

JavaScript 第6版

JavaScript 第6版