Javascript ES6 のクラスを使ってみる

IE11を使ってる人も多く、まだ変化が多いので、ECMA Scriptは使ってませんでしたが、Win7のサポート終了でIE11からEdgeへの移行もすすむと思いますので、最近、使い始めてみました。

まだ、Javaのクラスと同等な使い方出来なくて、とまどう部分も多いですが、コード量減らすことができて、重宝しております。

< 作ったコード例 >

あちこちに書いたAJaxの処理をクラスに入れてみました。


class MyAjax {
  
  /**
   * コンストラクタ
   * @param {type} url URL
   * @param {type} mapdata リクエストパラメータ
   * @param {type} datatype 応答データタイプ (デフォルトはjson)
   * @param {type} type リクエストメソッド (デフォルトはPOST)
   * @param {type} cache キャッシュ (デフォルトはなし)
   * @param {type} async 非同期 (デフォルトは同期)
   * @returns {MyAjax}
   */
  constructor(url, mapdata, datatype = "json", type = "POST", cache = false, async = false) {
    
    this.url = url;
    this.mapdata = mapdata;
    this.datatype = datatype;
    this.type = type;
    this.cache = cache;
    this.async = async;
  }
  
  // 実行 //
  exec() {
    
    let rtn;
    $.ajax({
      url: this.url,
      type: this.type,
      cache: this.cache,
      dataType: this.datatype,
      async: false,
      data: this.mapdata,
      success: function (jsnortxt) {
        rtn = jsnortxt;
      },
      error: function (xhr, ts, err) {
        rtn = "ERROR";
      }
    });
    return rtn;
  }

}

呼び出し側


// -C 検索
let aJax = new MyAjax("GetJPFromID", {tblid: tblid, mvtp: mvtp});
let katakata = [];
katakata = aJax.exec();

Javascript クラスの static がブラウザによってはエラーとなる

JavascriptのES6クラスについては、IE11で動作しない、ブラウザによっては動かないのがあるなどの理由で、利用をためらってましたが、

Windows10の普及でIE11もなくなると思うので使い始めました。

同じような重複したコードが排除出来て、うれしいですが、まだ仕様が確定してないのか、動かない部分ありましたので、備忘録しておきます。

Vilaldy, Brave, Firefox で動かなかったコード (Edge, Chromeでは動く)


static STATICTEXT = "スタティック";

 

動いたコード


static STATICTEXT () {
return "スタティック";
}