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);