Mercurial > js4py-pl
changeset 157:5f3017d81e04 core-javascript.closure-exercises
$ hg mv core-javascript-work/closure-exercises.js core-javascript-work/answers/
| author | jf3243 |
|---|---|
| date | Wed, 09 Nov 2011 15:38:57 +0000 |
| parents | b774913eb242 |
| children | f4ea703a359b |
| files | core-javascript/core-javascript-work/answers/closure-exercises.js core-javascript/core-javascript-work/closure-exercises.js |
| diffstat | 2 files changed, 205 insertions(+), 205 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core-javascript/core-javascript-work/answers/closure-exercises.js Wed Nov 09 15:38:57 2011 +0000 @@ -0,0 +1,205 @@ +var something; + +TEST('anon', function() +{ + var answer; + + // start + answer = function(){ + return 1; + }; + // stop + + assert( answer() === 1 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(){ + + var answer; + + // start + answer = function(){ + return 1; + }; + // stop + + return answer; + }; + + var my_inner_function = outer_function(); + + assert( typeof my_inner_function === 'function' ); + assert( my_inner_function() === 1 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(){ + + var answer; + + // start + answer = function(){ + return 1; + }; + // stop + + return answer; + }; + + assert( outer_function()() === 1 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(n){ + + var answer; + + // start + answer = function(){ + return n; + }; + // stop + + return answer; + }; + + assert( outer_function(1)() === 1 ); + assert( outer_function(2)() === 2 ); + assert( outer_function(3)() === 3 ); +}); + + +TEST('anon', function() +{ + var outer_function = function(n){ + + // start + return function(){ + return n; + }; + // stop + }; + + assert( outer_function(1)() === 1 ); + assert( outer_function(2)() === 2 ); + assert( outer_function(3)() === 3 ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var get_value = function(){ + return value; + }; + + something = 1; + assert( get_value() === something ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var set_value = function(n){ + value = n; + }; + + set_value(2); + something = 2; + assert( value === something ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var get_value = function(){ + return value; + }; + + var set_value = function(n){ + value = n; + }; + + something = 1; + assert( get_value() === something ); + + set_value(2); + something = 2; + assert( get_value() === something ); +}); + + +TEST('anon', function() +{ + var value = 1; + + var ddd = function(aaa, bbb){ + return { + // start + aaa: aaa, + bbb: bbb + // stop + }; + }; + + var obj = ddd(1, 2); + + assert( obj.aaa === 1 ); + assert( obj.bbb === 2 ); + +}); + + +TEST('anon', function() +{ + + var get_set_factory = function(){ + + // start + var value; + + var get = function(){ + return value; + }; + + var set = function(new_value){ + value = new_value; + }; + // stop + + return { + get : get, + set : set + }; + }; + + var tmp; + tmp = get_set_factory(); + var get_a = tmp.get; + var set_a = tmp.set; + + tmp = get_set_factory(); + var get_b = tmp.get; + var set_b = tmp.set; + + + set_a('aaa'); + assert( get_a() == 'aaa' ); + + set_b('bbb'); + assert( get_b() == 'bbb' ); + + assert( get_a() == 'aaa' ); +});
--- a/core-javascript/core-javascript-work/closure-exercises.js Wed Nov 09 15:37:03 2011 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ -var something; - -TEST('anon', function() -{ - var answer; - - // start - answer = function(){ - return 1; - }; - // stop - - assert( answer() === 1 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(){ - - var answer; - - // start - answer = function(){ - return 1; - }; - // stop - - return answer; - }; - - var my_inner_function = outer_function(); - - assert( typeof my_inner_function === 'function' ); - assert( my_inner_function() === 1 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(){ - - var answer; - - // start - answer = function(){ - return 1; - }; - // stop - - return answer; - }; - - assert( outer_function()() === 1 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(n){ - - var answer; - - // start - answer = function(){ - return n; - }; - // stop - - return answer; - }; - - assert( outer_function(1)() === 1 ); - assert( outer_function(2)() === 2 ); - assert( outer_function(3)() === 3 ); -}); - - -TEST('anon', function() -{ - var outer_function = function(n){ - - // start - return function(){ - return n; - }; - // stop - }; - - assert( outer_function(1)() === 1 ); - assert( outer_function(2)() === 2 ); - assert( outer_function(3)() === 3 ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var get_value = function(){ - return value; - }; - - something = 1; - assert( get_value() === something ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var set_value = function(n){ - value = n; - }; - - set_value(2); - something = 2; - assert( value === something ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var get_value = function(){ - return value; - }; - - var set_value = function(n){ - value = n; - }; - - something = 1; - assert( get_value() === something ); - - set_value(2); - something = 2; - assert( get_value() === something ); -}); - - -TEST('anon', function() -{ - var value = 1; - - var ddd = function(aaa, bbb){ - return { - // start - aaa: aaa, - bbb: bbb - // stop - }; - }; - - var obj = ddd(1, 2); - - assert( obj.aaa === 1 ); - assert( obj.bbb === 2 ); - -}); - - -TEST('anon', function() -{ - - var get_set_factory = function(){ - - // start - var value; - - var get = function(){ - return value; - }; - - var set = function(new_value){ - value = new_value; - }; - // stop - - return { - get : get, - set : set - }; - }; - - var tmp; - tmp = get_set_factory(); - var get_a = tmp.get; - var set_a = tmp.set; - - tmp = get_set_factory(); - var get_b = tmp.get; - var set_b = tmp.set; - - - set_a('aaa'); - assert( get_a() == 'aaa' ); - - set_b('bbb'); - assert( get_b() == 'bbb' ); - - assert( get_a() == 'aaa' ); -});
