2019-03-08 TIL

var name = ksw
ksw = {
    id = 1,
    spelling = kwonsoonwoo
}
  • Java와 JavaScript에서는 변수 선언시 해당 값이 들어가는게 아니라

    메모리 주소값을 참조한다

var name.spelling = "1"
  • 변수의 1depth로 또다른 변수를 선언하면 원본에 있는 해당 변수의 값을 찾는다.
  • 위와 같이 선언하면 기존 name이라는 변수에는 spelling이라는 변수가 없었기 때문에 name.spelling이 아니라 ksw.spelling을 참조하게 됨
  • 따라서, 위와 같이 하게 되면 ksw.spelling의 value가 1로 바뀐다.
var name = angular.copy(ksw)
  • 이를 방지하기 위해선 copy를 해서 독립적인 변수로 만들어야 한다.

Comments