検索

ホームページ  >  に質問  >  本文

javascript - これが指摘する問題

リーリー

var a = new Persion('Tom') のとき、self と this はまだ Persion を指しています。a.before().after() を実行すると、self は Window を指しています。これを保存するために self を使用したいのです。人為的に自分を変えたわけではないのに、なぜ自分の価値が変わるのか、その原理は何なのか。

補足:
は先頭の文です var self= this; デバッグ中にselfがPersionからwindowに変わっていることがわかり、前後の宣言をコメントアウトしたところ、selfが宣言されていない場合は出力が変わることがわかりました。未定義ではありませんでしたが、ウィンドウ

です
ringa_leeringa_lee2823日前536

全員に返信(3)返信します

  • ringa_lee

    ringa_lee2017-05-19 10:10:29

    self 変数は before 関数で定義されていないため、ここでの self は window.self を指します。
    self プロパティは、ウィンドウ自体への読み取り専用の参照を返します。 Window プロパティと同等です。

    返事
    0
  • 黄舟

    黄舟2017-05-19 10:10:29

    前後の _self の値は未定義です

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:10:29

    問題があることを理解しています。私の問題はコードから抽出され、単純化されています。元のコードには非同期部分があり、これは非同期部分のウィンドウになります。デバッグ中に、先頭の文 var self= this の self が Persion から window に変わっていたので、self に何か問題があるのではないかと思いました。

    返事
    0
  • キャンセル返事