orion-muf / KHU-2017-2-Capstone2

0 stars 0 forks source link

javascript의 object는 reference라는 것을 잊지말자.. #13

Open muf opened 6 years ago

muf commented 6 years ago

하다보니 참으로 신기한 상황을 맞이했다..

     var label_number = markers.length

            var node = {lat : lat, lng : lng, label_number : label_number, cluster_number : cluster_number}

            if(cluster_number!=0){
                add(lat, lng,node,label_number,cluster_number);  
                g_clusteredNodes[idx].push(label_number)
                g_filteredNodes.push(markers[markers.length])
                // g_filteredNodes.push(node)
            }

            if(!g_clusteredNodesMap[cluster_number]){
                g_clusteredNodesMap[cluster_number]=[]
                g_clusteredNodesMap["keys"].push(cluster_number)

            }
            g_clusteredNodesM

분명 marker에 node를 먼저 넣고 나중에 node를 바꿨는데.. markers에도 적용된다.. 어디까지 참조 범위인지 모르겠는데 var node = ~ 처럼 변수를 만들어서 각각 다른 곳에 넣어도 같은 녀석이라는 것.. 즉 생성한 순간 이녀석은 그냥 한 놈이다.. 딱히 deep copy를 요청하지 않는 이상!

이 개념이 조금은 익숙하지 않아서 자꾸 헷갈리는 것 같다. 요즘은 default가 reference인 경우가 더 많으니 이젠 좀 적응하자..