Passing Variables by Value vs. by Reference
Passing Variables by Value vs. by Reference
Passing Variables by Value vs. by Reference
Passing Variables
by Value vs.
by Reference
Given&b=a,&passing/copying&
by&value&means&changing&&
copied&value&in&b&does¬&&
aect&the&value&stored&in&a
and&visa&versa&&
Given&b=a,&passing/copying&
by&reference&means&changing
&copied&value&in&b&does&aect&&
the&value&stored&in&a
and&visa&versa&&
In&Javascript,&primi<ves&are&
passed&by&value,&objects&are&
passed&by&reference&
! Under the hood, everything is
actually passed by value
primitives
var a = 7;
var b = a;
objects
How&does&that&work?&
Passed&by&value&
a&
7
0x001
memory&
var a = 7;
var b = a;
b = 5;
b&
7
5
0x002
Passed&by&reference&
a&
b&
0x003
0x001
memory&
0x003
x: 7
5
0x003
0x004
Summary
! Important! Passing by value vs. passing by reference
! Simple rule to remember
Primitives are passed/copied by value
Objects are passed/copied by reference