Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的对象标识_Javascript_Arrays_Collision Detection_Tree Structure - Fatal编程技术网

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

我正在用JavaScript制作一个碰撞检测器。我想制作一个树结构,这样我就可以制作一个复杂的对象

有一个大数组,包括子对象在内的所有对象都是该数组的一部分。 他们有些是孩子,有些是父母。每个项都有
子属性
父属性
根属性
,如果发生冲突,它会冒泡到父属性

我想出了两种识别物体的方法

  • 给对象标识

  • 直接引用对象,如
    “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”