2017-02-22 35 views
1

Я делаю детектор столкновения в JavaScript. Я хочу создать древовидную структуру, чтобы создать сложный объект.Идентификация объекта в javascript

Существует один большой массив, и все объекты, включая детей, являются частью массива. Некоторые из них - дети, а другие - родители. Каждый элемент имеет children, parent и root собственности, и если происходит столкновение, оно пузырится до родителя.

Я придумал два способа идентификации объектов.

  1. Дают объектов идентификаторы

  2. Quote объект непосредственно, как "node1.root = someOtherObject".

Я также хочу знать, что быстрее

//1 
if(object1.root === root.id){/*code here*/}//id based identification (literally) 
     //19253 === 19253 

//or 2 
if(object1.root === root){/*code here*/}//object based identification 
    //[Object] === [Object] 
+0

Вероятно, это не будет иметь большого значения, если таковые имеются. Я бы сказал, просто используйте то, что, по вашему мнению, является самым простым в обслуживании и наиболее читаемым. – elclanrs

+0

два объекта не могут быть равны '{} === {}' output 'false'. Поэтому рассмотрим предоставление свойства в объекте. – Jai

+0

Разница в производительности будет незначительной. Я думаю, что сравнение ссылок на объекты является технически правильным путем, но вы можете потерять иды, а не только для целей отладки. См. [This] (http://stackoverflow.com/a/886053/74757) для дальнейшего объяснения. –

ответ

1

Оба будут одинаковы в отношении производительности. Пожалуйста, проверьте ниже ссылку.

http://jsben.ch/#/Y9jDP