changeset 160:8cacef25f3d8 core-javascript.closure-exercises

$ python py/remove_answers.py
author jf3243
date Wed, 09 Nov 2011 15:55:17 +0000
parents 1eb05ae4fd4d
children a4b0e283999c
files core-javascript/core-javascript-work/closure-exercises.js
diffstat 1 files changed, 168 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core-javascript/core-javascript-work/closure-exercises.js	Wed Nov 09 15:55:17 2011 +0000
@@ -0,0 +1,168 @@
+var something;
+
+TEST('anon', function()
+{
+    var answer;
+
+    // Please write your answer here.
+
+    assert( answer() ===  1 );
+});
+
+
+TEST('anon', function()
+{
+    var outer_function = function(){
+
+        var answer;
+
+        // Please write your answer here.
+
+        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;
+
+        // Please write your answer here.
+
+        return answer;
+    };
+
+    assert( outer_function()() === 1 );
+});
+
+
+TEST('anon', function()
+{
+    var outer_function = function(n){
+
+        var answer;
+
+        // Please write your answer here.
+
+        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){
+
+        // Please write your answer here.
+    };
+
+    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;
+    };
+
+    assert( get_value() === something );
+});
+
+
+TEST('anon', function()
+{
+    var value = 1;
+
+    var set_value = function(n){
+        value = n;
+    };
+
+    set_value(2);
+    assert( value === something );
+});
+
+
+TEST('anon', function()
+{
+    var value = 1;
+
+    var get_value = function(){
+        return value;
+    };
+
+    var set_value = function(n){
+        value = n;
+    };
+
+    assert( get_value() === something );
+
+    set_value(2);
+    assert( get_value() === something );
+});
+
+
+TEST('anon', function()
+{
+    var value = 1;
+
+    var ddd = function(aaa, bbb){
+        return {
+            // Please write your answer here.
+            };
+    };
+
+    var obj = ddd(1, 2);
+
+    assert( obj.aaa === 1 );
+    assert( obj.bbb === 2 );
+
+});
+
+
+TEST('anon', function()
+{
+
+    var get_set_factory = function(){
+
+        // Please write your answer here.
+
+        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' );
+});