ブックマーク / qiita.com/Appseed246 (1)

  • 【JavaScript/Node.js】クラスに定義したメソッドをコールバックとして実行した際にコールバック内の this がクラスを参照しない件 - Qiita

    JavaScript におけるthisがコンテキストによって参照するものが異なるということはこの言語のハマり所としてよく知られていると思います。 今回は Node.js で クラスに定義したプロトタイプメソッド1 を同クラスの別のメソッドでコールバックとして実行した際に、コールバック内の this の挙動が想定通りの挙動にならず悩まされたので対処方法と原因を調査しました。 もし誤りがあればコメント欄などでご指摘いただければ幸いです。 前提 クラス記法を使用するため、バージョンは ES6 を想定しています。 例 以下のSampleクラスを例とします。 class Sample { constructor(prop) { this.prop = prop; } /** * `prop`の値をコンソールに出力する */ printProp() { console.log(this.prop);

    【JavaScript/Node.js】クラスに定義したメソッドをコールバックとして実行した際にコールバック内の this がクラスを参照しない件 - Qiita
    turanukimaru
    turanukimaru 2019/03/12
    そもそもメソッドはオブジェクト内のスロットに格納されてるだけでバインドしてる主体はオブジェクトのほう。取り出してただの関数にしてしまえばそりゃ元のオブジェクトは参照できないよ。
  • 1