JavaScript Fundamentals: Reference VS Copy

  Рет қаралды 18,191

Wes Bos

Wes Bos

Күн бұрын

Пікірлер: 25
@singhkr
@singhkr 2 жыл бұрын
last concept of deep clone is truly awesome
@franciscalizo7600
@franciscalizo7600 5 жыл бұрын
Any reason why at 5:45, array.map() method isn't used when using the other ES6 methods?
@djvesko
@djvesko 7 жыл бұрын
Great lesson for JS newbies and great reminder for me.
@ZarateAdriel
@ZarateAdriel 7 жыл бұрын
the copy / assignation in arrays and objects that doesn't happen in strings and number, is about mutability ?
@ZarateAdriel
@ZarateAdriel 7 жыл бұрын
What about for in? I just note that isn't a deep object copy, but works well for arrays
@bokisa007
@bokisa007 7 жыл бұрын
very useful, just wanted to add that when using Object.assign, one can add desired properties directly inside of its first param, instead of making it an empty obj and using 3rd to add params. For example: Object.assign({}, wes, {age:26}) can be done like this: Object.assign({age:26}, wes)
@cagmz
@cagmz 6 жыл бұрын
Using an empty object for the first param is the correct approach. The way I think of Object.assign is that it does a left-to-right composition of objects. That is, it when called with an empty object as the first param, it merges the `wes` object into the empty object producing a temporary object, and then it merges { age: 26 } into that object. If you use the "desired properties" as the first param, any matching properties from the second param will overwrite those in the first param. Example: > const wes = { age: 27 }; undefined > wes {age: 27} > Object.assign({age:26}, wes) {age: 27} // expected 26
@ericmcgrath2514
@ericmcgrath2514 7 жыл бұрын
Welcome back Wes
@WesBos
@WesBos 7 жыл бұрын
thanks!
@Suneriins234
@Suneriins234 4 жыл бұрын
Thanks.I learn so many things.
6 жыл бұрын
All those methods of copying arrays make shallow copies. For example: let ar1 = [1,2,3,['a','b','c'],5,6]; let ar2 = ar1.slice(); ar2[3][1] = "BOO!" console.log(ar1); // :( In order to make deep copies, one needs to make a recursive function, for example: function copyArray(arr) { let copy; if (null == arr || "object" != typeof arr) return arr; if (arr instanceof Array) { copy = []; for (const item of arr) { copy.push(copyArray(item)); } return copy; } throw new Error("Unexpected data type"); }
@mriduljain1981
@mriduljain1981 6 ай бұрын
bro would be happy to know that object spread do exists now
@kisanb
@kisanb 7 жыл бұрын
Wes, const cap3 ={...person}; worked for me...
@WesBos
@WesBos 7 жыл бұрын
It's in Chrome now!
@rammyramkumar
@rammyramkumar 7 жыл бұрын
What is the editor and font you use ?
@WesBos
@WesBos 7 жыл бұрын
Yuuup
@hibritusta2642
@hibritusta2642 4 жыл бұрын
Thanks
@ClevertonHeusner
@ClevertonHeusner 4 жыл бұрын
It's insane.
@furqanashraf5638
@furqanashraf5638 4 жыл бұрын
how bout new keyword
@forgettd
@forgettd 7 жыл бұрын
Poppy and Lux. Hm...
@kissu_io
@kissu_io 7 жыл бұрын
DEMACIA !
@animeshsingh4290
@animeshsingh4290 4 жыл бұрын
Deep Clone function if anyone needs it function cloneObject(obj) { var clone = {}; for(var i in obj) { if(obj[i] != null && typeof(obj[i])=="object") clone[i] = cloneObject(obj[i]); else clone[i] = obj[i]; } return clone; }
@Ludo045
@Ludo045 2 жыл бұрын
thanks god, now we have spread, haha.
Ajax Type Ahead with fetch() - #JavaScript30 6/30
17:22
Wes Bos
Рет қаралды 59 М.
Леон киллер и Оля Полякова 😹
00:42
Канал Смеха
Рет қаралды 4,7 МЛН
Try this prank with your friends 😂 @karina-kola
00:18
Andrey Grechka
Рет қаралды 9 МЛН
Vanilla JavaScript Slide In on Scroll - #JavaScript30 13/30
12:58
Flexbox + JavaScript Image Gallery - #JavaScript30 5/30
13:10
Fast Inverse Square Root - A Quake III Algorithm
20:08
Nemean
Рет қаралды 5 МЛН
How JavaScript's Array Reduce Works - #JavaScript30 18/30
12:57
Coding Adventure: Atmosphere
22:00
Sebastian Lague
Рет қаралды 1,1 МЛН
But what are Hamming codes? The origin of error correction
20:05
3Blue1Brown
Рет қаралды 2,5 МЛН
JS Checkbox Challenge! #JavaScript30 10/30
11:19
Wes Bos
Рет қаралды 30 М.