Obiekt do głębokiego kopiowania Javascript [duplikat]

Możliwy duplikat:
Jaki jest najbardziej skuteczny sposób klonowania obiektu JavaScript?

Mam taki obiekt:

User = {    
  name: "user",
  settings: {
    first: "1",
    second: "2"    
  }    
}

i drugi:

user1 = {
  name: "user1",
  settings: {
    second: "3"
  }
}

teraz chcę skopiować niestandardowe wartości użytkownika 1 do użytkownika, używając:

    for(var key in user1){
        User[key] = user1[key];
    }

wynikiem będzie Użytkownik:

User = {
  name: "user1",
  settings: {
    second: "3"
  }
}

User.settings został całkowicie zastąpiony, podczas gdy chciałem tylko ustawienia.

Jak to osiągnąć, nie wiedząc, ile obiektów potomnych ma główny obiekt?

questionAnswers(3)

yourAnswerToTheQuestion