passing by reference
by Ken Sprague
JavaScript
//javascript passes by reference
//NOT by value (copy)
//** JSON.parse(JSON.stringify(obj))
let log = console.log;
let names = ['Bob', 'Louise', 'Tina', 'Linda', 'Gene'];
let f = function(arr){
//let a and r are two new variables
let a = Array.from(arr);
let r = [].concat(arr);
arr.push('Morty');
a.push('Barbara')
log(arr);
log(names);
log(a);
log(r);
}
//f(names);
let archer = {
characters: ['Sterling', 'Pam', 'Lana', 'Mallory'],
info:{inner:true, nums:[1,2,3]}
}
let g = (obj) => {
let o = Object.assign({}, obj);
//obj.characters = ['Slater', 'Sterling', 'Lana'];
//obj.characters.push('Cheryl');
//obj.info.inner = false;
//obj.info.nums = [4,5,6];
log('OBJ', obj);
log('ARCHER', archer);
log('O', o);
return o;
}
let newObj = g(archer);
//newObj.characters.push('Cyril');
//log('NEWOBJ', newObj);
//log('ARCHER', archer);