javascript中的对象标识
我正在用JavaScript制作一个碰撞检测器。我想制作一个树结构,这样我就可以制作一个复杂的对象 有一个大数组,包括子对象在内的所有对象都是该数组的一部分。 他们有些是孩子,有些是父母。每个项都有javascript中的对象标识,javascript,arrays,collision-detection,tree-structure,Javascript,Arrays,Collision Detection,Tree Structure,我正在用JavaScript制作一个碰撞检测器。我想制作一个树结构,这样我就可以制作一个复杂的对象 有一个大数组,包括子对象在内的所有对象都是该数组的一部分。 他们有些是孩子,有些是父母。每个项都有子属性、父属性和根属性,如果发生冲突,它会冒泡到父属性 我想出了两种识别物体的方法 给对象标识 直接引用对象,如“node1.root=someOtherObject” 我还想知道哪个更快 //1 if(object1.root === root.id){/*code here*/}//id base
子属性
、父属性
和根属性
,如果发生冲突,它会冒泡到父属性
我想出了两种识别物体的方法
“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]
两者在性能方面相同。请查看下面的链接
如果有的话,可能不会有多大区别。我想说的是,只使用你认为最容易维护和最可读的东西。两个对象不能相等
{}=={}
输出false
。所以考虑在对象中赋予属性,性能上的差异可以忽略不计。我认为比较对象引用在技术上是正确的方法,但您可能最终也需要ID来进行调试。请参阅以获得进一步的解释。我将比较对象是否完全相同。我理解“({}==={})==false”和“({“bar”:“foo”}===={“bar”:“foo”})==false”