- Zmienne prostych typów przekazujemy przez wartość.
- Obiekty przekazujemy przez referencję.
- Oznacza to, że dwie zmienne mogą wskazywać na ten sam obiekt.
- Aby temu zapobiec musimy klonować obiekty.
var x = {a: 1, b: 2};
//nowa zmienna, ten sam obiekt
var y = x;
//klon
var z = {};
for(prop in x) {
z[prop] = x[prop];
}
//zmieniliśmy y, a więc także x
y.a = 10;
console.log(x.a, y.a, z.a);