Mercurial > js4py
view core-javascript/core-javascript-work/closure-exercises.js @ 154:ee0bf994ab95 core-javascript.closure-exercises
Add remove_answers.py script (and clean up closure-exercises.py).
| author | jf3243 |
|---|---|
| date | Wed, 02 Nov 2011 17:27:39 +0000 |
| parents | e8007df28827 |
| children | b774913eb242 |
line wrap: on
line source
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' ); });
