Immutability: Function

by cferdinandi

JavaScript

/**
 * Arrays
 */

var arr1 = function () {
	return ['sandwich', 'soda', 'chips'];
};
var arr2 = arr1();

// Push an item to array 2
arr2.push('cookie');

// logs ["sandwich", "soda", "chips"]
console.log(arr1());

// logs ["sandwich", "soda", "chips", "cookie"]
console.log(arr2);


/**
 * Objects
 */

var obj1 = function () {
	return {
		sandwich: 'turkey',
		soda: 'Pepsi',
		chips: 'Cape Cod'
	};
};
var obj2 = obj1();

// Add an item to object 2
obj2.cookie = 'chocolate chip';

// logs {sandwich: "turkey", soda: "Pepsi", chips: "Cape Cod"}
console.log(obj1());

// logs {sandwich: "turkey", soda: "Pepsi", chips: "Cape Cod", cookie: "chocolate chip"}
console.log(obj2);