設定クラスメンバーの関数に対して_C関数を使用すると, this が正しく得られない.

作者: リン・ハーンライトリング, 作成日:2019-08-11 14:47:22, 更新日:2019-08-11 14:50:47

このコードを実行してみてください.

function MyClass()
{
    this.m_name = "my name";
}

MyClass.prototype.printMyName = function()
{
    Log(this.m_name);
    return true;
}

function main() {
    var myobj = new MyClass();
    myobj.printMyName();
    _C(myobj.printMyName);
}

プリント結果は:

  • 私の名前
  • ゼロ

_C (myobj.printMyName) を呼び出すとき,関数内の this は myobj オブジェクトを指していない. この問題はどう解決するか?


もっと

小さな夢` ` 機能 MyClass (マイクラス) { var self = {} self.m_name = "私の名前" わかった self.printMyName = 関数 () { ログ (self.m_name) true を返す { \ pos (192,220) } わかった 返信する { \ pos (192,220) } 機能 main (() { var myobj = MyClass (マイクラス) myobj.printMyName (myobj.printMyName) をクリックする _C ((myobj.printMyName) _ (C (myobj.printMyName) _) した { \ pos (192,220) } ` `

小さな夢原因は,myobj.printMyName が _C に転送された後, this 指針が指向しているため.

ライトリングありがとうございました.