What is the difference between Scope and Context in JavaScript?

4 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€94.93
List Price:  €132.91
You save:  €37.97
£79.03
List Price:  £110.65
You save:  £31.61
CA$140.06
List Price:  CA$196.09
You save:  CA$56.03
A$153.89
List Price:  A$215.46
You save:  A$61.56
S$134.42
List Price:  S$188.19
You save:  S$53.77
HK$778.15
List Price:  HK$1,089.44
You save:  HK$311.29
CHF 88.46
List Price:  CHF 123.85
You save:  CHF 35.38
NOK kr1,106.89
List Price:  NOK kr1,549.69
You save:  NOK kr442.80
DKK kr708.13
List Price:  DKK kr991.41
You save:  DKK kr283.28
NZ$169.76
List Price:  NZ$237.67
You save:  NZ$67.91
د.إ367.26
List Price:  د.إ514.19
You save:  د.إ146.92
৳11,913.94
List Price:  ৳16,679.99
You save:  ৳4,766.05
₹8,449.26
List Price:  ₹11,829.30
You save:  ₹3,380.04
RM444.65
List Price:  RM622.53
You save:  RM177.88
₦168,698.12
List Price:  ₦236,184.12
You save:  ₦67,486
₨27,703.14
List Price:  ₨38,785.50
You save:  ₨11,082.36
฿3,443.25
List Price:  ฿4,820.69
You save:  ฿1,377.44
₺3,462.60
List Price:  ₺4,847.78
You save:  ₺1,385.18
B$598.25
List Price:  B$837.57
You save:  B$239.32
R1,818.71
List Price:  R2,546.27
You save:  R727.55
Лв185.54
List Price:  Лв259.76
You save:  Лв74.22
₩139,623.30
List Price:  ₩195,478.21
You save:  ₩55,854.90
₪365.09
List Price:  ₪511.14
You save:  ₪146.05
₱5,872.56
List Price:  ₱8,221.82
You save:  ₱2,349.26
¥15,186.98
List Price:  ¥21,262.38
You save:  ¥6,075.40
MX$2,025.91
List Price:  MX$2,836.36
You save:  MX$810.44
QR363.39
List Price:  QR508.76
You save:  QR145.37
P1,362.02
List Price:  P1,906.89
You save:  P544.86
KSh12,948.70
List Price:  KSh18,128.70
You save:  KSh5,180
E£4,970.06
List Price:  E£6,958.29
You save:  E£1,988.22
ብር12,601.88
List Price:  ብር17,643.14
You save:  ብር5,041.25
Kz91,089.09
List Price:  Kz127,528.37
You save:  Kz36,439.28
CLP$97,725.22
List Price:  CLP$136,819.22
You save:  CLP$39,094
CN¥725.08
List Price:  CN¥1,015.15
You save:  CN¥290.06
RD$6,009.89
List Price:  RD$8,414.09
You save:  RD$2,404.19
DA13,359.34
List Price:  DA18,703.61
You save:  DA5,344.27
FJ$226.94
List Price:  FJ$317.73
You save:  FJ$90.78
Q769.20
List Price:  Q1,076.91
You save:  Q307.71
GY$20,858.96
List Price:  GY$29,203.38
You save:  GY$8,344.42
ISK kr13,737.62
List Price:  ISK kr19,233.22
You save:  ISK kr5,495.60
DH998.96
List Price:  DH1,398.59
You save:  DH399.62
L1,830.82
List Price:  L2,563.22
You save:  L732.40
ден5,834.63
List Price:  ден8,168.72
You save:  ден2,334.08
MOP$798.95
List Price:  MOP$1,118.57
You save:  MOP$319.61
N$1,808.86
List Price:  N$2,532.48
You save:  N$723.61
C$3,668.81
List Price:  C$5,136.49
You save:  C$1,467.67
रु13,468.97
List Price:  रु18,857.10
You save:  रु5,388.12
S/375.25
List Price:  S/525.36
You save:  S/150.11
K402.01
List Price:  K562.83
You save:  K160.82
SAR375.60
List Price:  SAR525.86
You save:  SAR150.25
ZK2,719.29
List Price:  ZK3,807.12
You save:  ZK1,087.82
L472.45
List Price:  L661.45
You save:  L189
Kč2,399.23
List Price:  Kč3,359.02
You save:  Kč959.78
Ft39,362.83
List Price:  Ft55,109.54
You save:  Ft15,746.71
SEK kr1,093.94
List Price:  SEK kr1,531.56
You save:  SEK kr437.61
ARS$100,789.45
List Price:  ARS$141,109.26
You save:  ARS$40,319.81
Bs688.98
List Price:  Bs964.60
You save:  Bs275.62
COP$439,886.78
List Price:  COP$615,859.09
You save:  COP$175,972.31
₡50,922.11
List Price:  ₡71,293
You save:  ₡20,370.88
L2,521.57
List Price:  L3,530.31
You save:  L1,008.73
₲779,303.12
List Price:  ₲1,091,055.54
You save:  ₲311,752.42
$U4,282.79
List Price:  $U5,996.09
You save:  $U1,713.29
zł409.03
List Price:  zł572.67
You save:  zł163.63
Already have an account? Log In

Transcript

So the next question we need to answer is, what is the difference between scope and context in JavaScript? Well, scope is the visibility of variables. And context is the object to which a method belongs. So if you put them side by side, we can think about it this way. scope is the visibility of variables. And you might ask yourself, you know, what is the scope of a variable or how is a variable scoped?

And with context, which is the object to which a method belongs, from time to time, you might ask yourself, what is this or what context is this method executed it? So when you think of scope, think of variables. And when you think of context, think methods. Let's look at an example. Now just let's start out with kind of a pseudocode approach. I've got these three things on the screen, I've got Sam 123, and function.

And these are just three things and right now they're just kind of floating out in space, and I have no way to Get a hold of them. So Sam is a string and 123 is a number and this function is a function. Now let's just pretend that this function is a function because it's really not correct JavaScript syntax. But again, it's just pseudocode. For now, let's just pretend that's a function. Okay, so we've got the string, this number in this function, but I really have no way of getting a hold of these things.

I can't get my hands on them, they're just there, I needed a way to refer to them. So we need to, we need to refer to these values in a way by giving them some kind of name. So let's call Sam name, let's call 123. Count, and let's call the function greet. So by doing that, I now have a way to refer to each one of these things. So when I leverage scope, I can create variables for each one of these things.

I can say var name equals Sam, var count equals 123. And var greed equals function. And if I was going to leverage content Next, I could create an object, let's just say the object called OBJ. And I could give that object properties because objects have properties. And I could give it a name property that Sam and I could give it a count property that's 123. And I could give it a great property, that's dysfunction.

Or I could mix it up leverage scope and context. So I could say var name equals Sam and OBJ count equals 123. And var greet equals function. So let's see how this actually works in JavaScript code. So getting back to scope. If I wanted to create variables for these things, I'd use the var keyword and I'd say var name equals Sam var count equals 123.

And four greet equals function. And inside of the greet function, I'll enter the name value. So I'm creating handles for these values by creating variables. Now, if I wanted to leverage context, I could create an OBJ variable, it's an object and then I give that object property so OBJ name is Sam and OBJ dot count. Because 123 and OBJ dot greet is a function. And I learned this name, which would alert Sam.

Now we're going to talk a little more in depth about what the this keyword means. But just right now just keep in mind that when it comes to context, the this keyword is really important, and that this keyword refers to the object which a method belongs. Now if I was going to kind of mix it up and use scope and context, I could say OBJ isn't a variable, and name is a variable, but OBJ count is a property and then OBJ dot greet is also a property. It's also a method when objects property is a method or a function. And then it's called a method. So objects have properties.

But when a property is a function, it's a method. In this case, it alerts the name variable. So kind of three ways to really two ways to look at it. You can leverage scope and create variables, you can leverage context and create Object Properties. Or you can certainly mix and match So, once again scope is the visibility of variables. And when you think of scope, think variables and context is the object to which a method belongs.

And when you think of context, think methods

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.