結果は Z ですが、少しわかりにくいです。コンソールの出力例は次のとおりです:
滿天的星座2017-05-19 10:42:23
その理由は実はとても簡単で、問題は for ループにあります
リーリーここでの最後のキー === 'z'、および他の属性の結果は params[key] を返します。これは params['z'] です
给我你的怀抱2017-05-19 10:42:23
これはオブジェクトのコピー関数です。元のオブジェクトとの唯一の違いは、クロージャのため、コピーされたオブジェクト a の属性がすべて z であることです。 = {
リーリー
阿神2017-05-19 10:42:23
リーリー
こちら、Object.defineProperty(this, key, {})
这里的key
是立即读取使用的,所以是预期行为x,y,z
この関数は 将来のある時点で実行されるので、実行時に最後の key
值,即z
を読み取ります。これは古典的なクロージャ問題と同じです。
印刷されるものはすべて 5 です。