Skip to content

Commit cfe392f

Browse files
committed
add more example for closure
1 parent 7a94d10 commit cfe392f

3 files changed

Lines changed: 46 additions & 2 deletions

File tree

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,13 @@ console.log(sayHelloTo2.apply(person));
101101
## Hidden paramers
102102
- arguments
103103
- this
104+
104105
```javascript
105106
var myAdd = function(a, b, c) {
106107
console.log(arguments);
107108
}
108109
```
110+
109111
## Declare variables: Let vs Var
110112
- let is block scoped
111113
- var is function scoped
@@ -135,6 +137,10 @@ var person = function (name) {
135137
};
136138
}('Hellen');
137139
```
140+
141+
```javascript
142+
document.getElementsByClassName('test-node').each
143+
```
138144
# Inheritance
139145
## Goal of inheritance
140146
- reuse
@@ -212,5 +218,3 @@ var myCat = cat({name: 'Henrietta'});
212218
myCat.purr(2);
213219
myCat.get_name();
214220
```
215-
216-

index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
<body>
66
<div id="main">
77
<div id="result" style="top:150px;left:30%;position:relative"></div>
8+
<div id="event-example" >
9+
<div class="node">node1</div>
10+
<div class="node">node2</div>
11+
</div>
812
</div>
913
<script src="./sample-code.js" type="text/javascript"></script>
1014
</body>

sample-code.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,39 @@ console.log(sayHelloTo2.apply(person));
5656
var myAdd = function(a, b, c) {
5757
console.log(arguments);
5858
}
59+
60+
61+
// closure
62+
// register event handler
63+
64+
// let nodes = document.getElementsByClassName('node');
65+
// let count = nodes.length;
66+
67+
// using let, good
68+
// for (let i = 0; i < count; i++) {
69+
// nodes[i].onclick = function (e) {alert(i);}
70+
// }
71+
72+
// using var, unexpected
73+
let nodes = document.getElementsByClassName('node');
74+
let count = nodes.length;
75+
for (var i = 0; i < count; i++) {
76+
nodes[i].onclick = function (e) {alert(i);}
77+
}
78+
79+
80+
// babel's compiled output using let
81+
// var nodes = document.getElementsByClassName('node');
82+
// var count = nodes.length;
83+
84+
// function _loop(i) {
85+
// nodes[i].onclick = function (e) {
86+
// alert(i);
87+
// };
88+
// };
89+
90+
// for (var i = 0; i < count; i++) {
91+
// _loop(i);
92+
// }
93+
94+
//

0 commit comments

Comments
 (0)