あなたにとってのクロージャとは?
- 13. (2)レキシカルスコープ
[ JavaScript ]
js> var makeAdder = function(a){
return function(b) {
return a + b;
}
}
js> var a = 3
js> var adder4 = makeAdder(4)
js> adder4(2)
6
ポイントは、「a + b」の「a」は「var a = 3」の「a」ではな
く、functionの引数「a」を参照していること。
2009年7月8日水曜日
- 14. [ JavaScript ]
js> var makeAdder = function(a){
return function(b) {
return a + b;
}
}
js> var adder4 = makeAdder(4)
js> adder4(2)
6
js> var adder7 = makeAdder(7)
js> adder7(2)
9
(3)環境を閉じこめる
ポイントは、adder4とadder7は互いに別の環境を生成し、function
に閉じ込めていること。
2009年7月8日水曜日
- 15. [ JavaScript ]
js> var makeAdder = function(a){
return function(b) {
return a + b;
}
}
js> var adder4 = makeAdder(4)
js> adder4(2)
6
js> var adder7 = makeAdder(7)
js> adder7(2)
9
(3)環境を閉じこめる
ポイントは、adder4とadder7は互いに別の環境を生成し、function
に閉じ込めていること。
「a = 4」という
環境を生成
2009年7月8日水曜日
- 16. [ JavaScript ]
js> var makeAdder = function(a){
return function(b) {
return a + b;
}
}
js> var adder4 = makeAdder(4)
js> adder4(2)
6
js> var adder7 = makeAdder(7)
js> adder7(2)
9
(3)環境を閉じこめる
ポイントは、adder4とadder7は互いに別の環境を生成し、function
に閉じ込めていること。
「a = 4」という
環境を生成
「a = 4」という
環境とfunctionが
結びつく
2009年7月8日水曜日
- 17. [ JavaScript ]
js> var makeAdder = function(a){
return function(b) {
return a + b;
}
}
js> var adder4 = makeAdder(4)
js> adder4(2)
6
js> var adder7 = makeAdder(7)
js> adder7(2)
9
(3)環境を閉じこめる
ポイントは、adder4とadder7は互いに別の環境を生成し、function
に閉じ込めていること。
「a = 4」という
環境を生成
「a = 4」という
環境とfunctionが
結びつく
「a = 4」「b=2」とし
て「a + b」を実行
2009年7月8日水曜日
- 18. [ JavaScript ]
js> var makeAdder = function(a){
return function(b) {
return a + b;
}
}
js> var adder4 = makeAdder(4)
js> adder4(2)
6
js> var adder7 = makeAdder(7)
js> adder7(2)
9
(3)環境を閉じこめる
ポイントは、adder4とadder7は互いに別の環境を生成し、function
に閉じ込めていること。
2009年7月8日水曜日
- 19. [ JavaScript ]
js> var makeAdder = function(a){
return function(b) {
return a + b;
}
}
js> var adder4 = makeAdder(4)
js> adder4(2)
6
js> var adder7 = makeAdder(7)
js> adder7(2)
9
(3)環境を閉じこめる
ポイントは、adder4とadder7は互いに別の環境を生成し、function
に閉じ込めていること。
「a = 7」という
環境を生成
2009年7月8日水曜日
- 20. [ JavaScript ]
js> var makeAdder = function(a){
return function(b) {
return a + b;
}
}
js> var adder4 = makeAdder(4)
js> adder4(2)
6
js> var adder7 = makeAdder(7)
js> adder7(2)
9
(3)環境を閉じこめる
ポイントは、adder4とadder7は互いに別の環境を生成し、function
に閉じ込めていること。
「a = 7」という
環境とfunctionが
結びつく
「a = 7」という
環境を生成
2009年7月8日水曜日
- 21. [ JavaScript ]
js> var makeAdder = function(a){
return function(b) {
return a + b;
}
}
js> var adder4 = makeAdder(4)
js> adder4(2)
6
js> var adder7 = makeAdder(7)
js> adder7(2)
9
(3)環境を閉じこめる
ポイントは、adder4とadder7は互いに別の環境を生成し、function
に閉じ込めていること。
「a = 7」という
環境とfunctionが
結びつく
「a = 7」という
環境を生成
「a = 7」「b = 2」とし
て「a + b」を実行
2009年7月8日水曜日
- 22. [ JavaScript ]
js> var makeAdder = function(a){
return function(b) {
return a + b;
}
}
js> var adder4 = makeAdder(4)
js> adder4(2)
6
js> var adder7 = makeAdder(7)
js> adder7(2)
9
「a = 7」という
環境を生成
(3)環境を閉じこめる
ポイントは、adder4とadder7は互いに別の環境を生成し、function
に閉じ込めていること。
「a = 4」という
環境を生成
2009年7月8日水曜日
- 23. (4)環境に対する副作用
[ JavaScript ]
js> var makeAccum = function(a){
return function(b) {
a += b;
return a;
}
}
js> var accum = makeAccum(4)
js> accum(2)
6
js> accum(3)
9
ポイントは、accumを呼び出す度にaの値が変更されていること。
2009年7月8日水曜日
- 24. (4)環境に対する副作用
[ JavaScript ]
js> var makeAccum = function(a){
return function(b) {
a += b;
return a;
}
}
js> var accum = makeAccum(4)
js> accum(2)
6
js> accum(3)
9
ポイントは、accumを呼び出す度にaの値が変更されていること。
「a = 4」という
環境を生成
2009年7月8日水曜日
- 25. (4)環境に対する副作用
[ JavaScript ]
js> var makeAccum = function(a){
return function(b) {
a += b;
return a;
}
}
js> var accum = makeAccum(4)
js> accum(2)
6
js> accum(3)
9
ポイントは、accumを呼び出す度にaの値が変更されていること。
2009年7月8日水曜日
- 26. (4)環境に対する副作用
[ JavaScript ]
js> var makeAccum = function(a){
return function(b) {
a += b;
return a;
}
}
js> var accum = makeAccum(4)
js> accum(2)
6
js> accum(3)
9
ポイントは、accumを呼び出す度にaの値が変更されていること。
function実行
2009年7月8日水曜日
- 27. (4)環境に対する副作用
[ JavaScript ]
js> var makeAccum = function(a){
return function(b) {
a += b;
return a;
}
}
js> var accum = makeAccum(4)
js> accum(2)
6
js> accum(3)
9
ポイントは、accumを呼び出す度にaの値が変更されていること。
function実行
a(=4)にb(=2)を累算
させて、aを返す。
2009年7月8日水曜日
- 28. (4)環境に対する副作用
[ JavaScript ]
js> var makeAccum = function(a){
return function(b) {
a += b;
return a;
}
}
js> var accum = makeAccum(4)
js> accum(2)
6
js> accum(3)
9
ポイントは、accumを呼び出す度にaの値が変更されていること。
2009年7月8日水曜日
- 29. (4)環境に対する副作用
[ JavaScript ]
js> var makeAccum = function(a){
return function(b) {
a += b;
return a;
}
}
js> var accum = makeAccum(4)
js> accum(2)
6
js> accum(3)
9
ポイントは、accumを呼び出す度にaの値が変更されていること。
function実行
2009年7月8日水曜日
- 30. (4)環境に対する副作用
[ JavaScript ]
js> var makeAccum = function(a){
return function(b) {
a += b;
return a;
}
}
js> var accum = makeAccum(4)
js> accum(2)
6
js> accum(3)
9
ポイントは、accumを呼び出す度にaの値が変更されていること。
function実行
a(=6)にb(=2)を累算
させて、aを返す。
2009年7月8日水曜日