検索

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

javascript - JS で書かれたテストの問題ですが、よくわかりません。説明してください。

リーリー

結果は Z ですが、少しわかりにくいです。コンソールの出力例は次のとおりです:

phpcn_u1582phpcn_u15822791日前486

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

  • 滿天的星座

    滿天的星座2017-05-19 10:42:23

    その理由は実はとても簡単で、問題は for ループにあります

    リーリー

    ここでの最後のキー === 'z'、および他の属性の結果は params[key] を返します。これは params['z'] です

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:42:23

    これはオブジェクトのコピー関数です。元のオブジェクトとの唯一の違いは、クロージャのため、コピーされたオブジェクト a の属性がすべて z であることです。 = {
    リーリー

    }

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:42:23

    クロージャを作成するか、letを使用します

    リーリー

    またはvarキーをletキーに変更します

    返事
    0
  • 阿神

    阿神2017-05-19 10:42:23

    リーリー

    こちら、Object.defineProperty(this, key, {})这里的key是立即读取使用的,所以是预期行为x,y,z

    リーリー

    この関数は 将来のある時点で実行されるので、実行時に最後の key值,即z を読み取ります。これは古典的なクロージャ問題と同じです。

    リーリー

    印刷されるものはすべて 5 です。

    返事
    0
  • キャンセル返事