-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathm_passByReference.js
More file actions
51 lines (39 loc) · 1.74 KB
/
Copy pathm_passByReference.js
File metadata and controls
51 lines (39 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// PASS BY REFERENCE
// Object datatypes: Object, Array
// Verklaring & toewijzing
let pet = {
name: "Freckle",
};
console.log(pet); // geeft { name: 'Freckle' }
let petEvilTwin = pet;
console.log(petEvilTwin); // geeft { name: 'Freckle' }
// Hernoemen
pet.name = "Fabian"
// Wat is er gebeurd:
// 1. in het geheugen van pet = het object { name: 'Freckle' }
// 2. in het geheugen van petEvilTwin komt dezelfde waarde als pet = het object { name: 'Freckle' }
// 3. het geheugen pet.name wordt Fabian i.p.v. Freckle
// 4. het geheugen van petEvilTwin veranderd mee omdat het hetzelfde geheugen is als pet = het object { name: 'Fabian' }
// DUS: we hebben een nieuwe referentie "petEvilTwin" maar verwijst naar hetzelfde object
console.log(pet); // geeft { name: 'Fabian' }
console.log(petEvilTwin); // geeft { name: 'Fabian' }
// Hoe kun je ervoor zorgen dat petEvilTwin niet hetzelfde is als pet?
// Een kopie maken van het object
// We maken een nieuw object aan en kopiëren de waarde (name is een primitieve datatype)
let pet2 = {
name: "Freckle",
};
console.log("PET2", pet2); // geeft PET2 { name: 'Freckle' }
let petEvilTwin2 = {
name: pet2.name,
};
console.log("PET2", petEvilTwin2); // geeft PET2 { name: 'Freckle' }
// Hernoemen
pet2.name = "Fabian"
// Wat er nu gebeurd:
// 1. in het geheugen van pet2 = het object { name: 'Freckle' }
// 2. in het geheugen van petEvilTwin2 komt dezelfde waarde als pet2 = het object { name: 'Freckle' }
// 3. het geheugen pet2.name wordt Fabian i.p.v. Freckle
// 4. het geheugen van petEvilTwin2 veranderd niet mee omdat het een ander geheugen is als pet2 = het object { name: 'Freckle' }
console.log("PET2", pet2); // geeft PET2 { name: 'Fabian' }
console.log("PET2", petEvilTwin2) // geeft PET2 { name: 'Freckle' }