検索

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

JS 内のこのオブジェクト

var str="hello";
var obj={
str:"world",
saystr:this.str
};
alert(obj.saystr); / /結果はこんにちは

です

結果が「world」ではなく「hello」になる理由を聞いてもいいですか

阿神阿神2753日前665

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

  • 習慣沉默

    習慣沉默2017-05-19 10:28:19

    この記事はこの問題のほとんどを解決できます。

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-19 10:28:19

    this指向什么,由包含它的最近的一个function决定的;
    如果没找到function,那么this はグローバル オブジェクトです。
    あなたの質問では後者です。

    コードを少し変更します:

    リーリー

    これが最初の状況です。

    要約: this を決定するには、通常 2 つのステップが必要です:

    1. まず、this的最近的一个function

      を含む最も近い
    2. を見つけます。
    3. 次に、この function の呼び出し方を見てください。詳細はこちらをご覧ください。

    返事
    0
  • 滿天的星座

    滿天的星座2017-05-19 10:28:19

    リーリー リーリー

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:28:19

    理解を深めるために質問を次のように変換してください:

    リーリー

    これが window グローバル オブジェクトを指していることが一目でわかり、obj.saystr の結果は hello になります

    返事
    0
  • キャンセル返事