Making Better Decisions - Demonstration

What’s the Difference Between Scope and Context in JavaScript? Making Better Decisions About Scope and Context
6 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

In your examples folder, open up the planning sub folder. And let's take a look at planning example one. So here I've got some code that should look familiar to you. I'm iterating over the salespeople. And I've set up a bunch of click event handlers. You'll notice I'm saying that I've got some repeated code.

So let's do a search for the code that i'm saying is repeated to this two instances of it. So there are two places in my code here on line 27, and line 47, where I want the length of all these selected salespeople. So what that means is that if you go to run the example, method chaining that's just where the app all the all the code is working. So when I select salespeople, when I go here and click the delete selected button that deletes all the LM all the salespeople who are selected and I know that because When I inspect any one of those particular lines, you can see it has the the class selected, this one has the class selected. And if I would remove that class, it would no longer appear selected. So here we're saying salespeople Li selected length, the length of all those elements.

So there's two cases where I want to know the length of the Li selected elements or how many Li selected elements there are. But the problem here is we've got repeated code. I'm literally typing in quotes, pound salespeople space Li selected twice. And what happens if I change the salesperson element salespeople ID to you know, salespeople all let's say, let's just you know, I'm going to for some reason, I'm changing the name of that ID. So that means I have to go to each one of these and I have to go like that. And that is messy business.

We don't want to do stuff like that. It's extremely hard to manage Imagine there could be 10s, or hundreds of files in our code where that's where that the literal ID has been said, we don't want that. So another way to approach this would be to if you look at explaining example two, we set a variable to salespeople. So this variable dollar sign salespeople represents the live dom dom element, this element, this variable right here represents this element right here, the ID of salespeople. So, now we have a reference to that element. So we don't have to constantly keep retyping this and if we rename this, this ID in our markup to, you know, salespeople, hyphen, all, then we could just make that change here once, and it'll cascade to our code.

So that's working out better because now we're just saying dollar sign salespeople. dot find Li selected. And same thing here. That's a little bit more efficient. But we've still got some repeated code. We're still literally typing out.

Li dot selected, and Li dot selected. And what if we make those allies Dibs are what if we change the selected class to I am selected? So that's more retyping. Yeah, I am selected, and I've got to take that change, and I've got to make it down here. And that's once again, messy business. We don't want to do stuff like that.

So I think there's a better way to do that. So if we go to planning example three, you can see that what we've done here is we've got our dollar sign very salespeople variable, and then we've got a method function called get salespeople length and that returns the length of all the selected salespeople. So we're saying style science. People dot find we're using the find method of this object passing an Li. And I should throw this is getting all salespeople don't like so how many salespeople there are. And then we want to find out the number of selected salespeople that are.

So we're saying salespeople dot find Li dot selected. So here it's just find Li dot length here, it's find Li dot selected length. But in both cases, we're executing a function. And that way, when we want to know the number of salespeople, we just call the function, get salespeople length. It's just that simple. And then we want to know the number of currently selected salespeople.

We just call the function, get selected salespeople length, we do that twice. And that way if anything changes in our code, if we change this ID to salespeople all It doesn't matter. We make that change right there. And that's it. We don't worry about it. And if we were to change the the lies that had the salespeople To Dibs, we could make this change there.

And we don't have to make it anyplace else. Or if we named, if we renamed the the, if we renamed the class that indicates something is selected to I am selected, we just make this change here. And that's it. Everybody's just calling this function. They're not worrying about this or calling this function, this function is taking care of how that set. So you could refactor all day long.

And we can really get rid of all these string literals that we're using our code because we've got a whole bunch of them. And this is all again, kind of messy business. Because this is these are strings that we'd have to change by hand if any of these definitions change. So the main point I'm making here is that we want to now that we understand the difference in scope and context. We can do things like creating a variable scope, that we can use throughout our code, or we can do things like create a leveraging methods on objects context. to refactor our code or plan our code in a way that's smarter and easier to manage

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.