0

いくつかのイベントを json-object に記録する必要がありますが、パフォーマンスの観点から見て、長いサブオブジェクトと多くのサブオブジェクトのどちらが優れていますか?

より良い解釈のために、次の 2 つのオブジェクトを見てください。

1位(長物)

var eventsObj = {
  target: {
    timestamp1: window,
    timestamp2: document,
    timestamp3: document
  },
  keyCode: {
    timestamp1: 0,
    timestamp2: 66,
    timestamp3: 67
  },
  mouseX: {
    timestamp1: 1,
    timestamp2: 2,
    timestamp3: 3
  },
  mouseY: {
    timestamp1: 0,
    timestamp2: 1,
    timestamp3: 2
  }
  ...etc...
};

2 番目(多くのオブジェクト)

var eventsObj = {
  timestamp1: {
    target: window,
    keyCode: 0,
    mouseX: 1,
    mouseY: 0
  },
  timestamp2: {
    target: document,
    keyCode: 66,
    mouseX: 2,
    mouseY: 1
  },
  timestamp3: {
    target: document,
    keyCode: 67,
    mouseX: 3,
    mouseY: 2
  }
  ...etc...
};

アップデート

http://jsperf.com/object-performance-long-items-or-many-items

4

2 に答える 2

0

1 つのイベントのデータを取得するための最初のケースでは、1 つまたは複数のループを含むいくつかのステートメントで終わる可能性があるため、2 つ目と言えます。一方、2 番目のケースでは 'for...in' ループは 1 つだけで、単一のイベントのデータを取得するのに十分です。

于 2013-01-07T23:22:43.933 に答える
0

メモリ消費に関しては、どちらも (ほぼ) 同じです。パフォーマンスは、オブジェクトを反復して使用する方法によって異なります。

ただし、2 番目の表現の方がはるかに読みやすく、意味的にも正しいです。

于 2013-01-07T23:12:39.537 に答える