diff core-javascript/tutorial.js @ 112:df92f9f165c7 core-javascript

Add closures.rst and it JavaScript test.
author jf3243
date Wed, 26 Oct 2011 16:42:59 +0100
parents 73859bf6d639
children e73b36990587
line wrap: on
line diff
--- a/core-javascript/tutorial.js	Wed Oct 26 16:32:34 2011 +0100
+++ b/core-javascript/tutorial.js	Wed Oct 26 16:42:59 2011 +0100
@@ -17,6 +17,47 @@
 NaN != NaN || ddt;
 
 
+// start closures
+TEST('closures', function()
+{
+
+    var get_set_factory = function(){
+
+        var value;
+        var get = function(){
+            return value;
+        };
+        var set = function(new_value){
+            value = new_value;            
+        };
+
+        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(12);
+    assert( get_a() === 12 );
+
+    set_b(13);
+    assert( get_b() === 13 );
+
+});
+// end closures
+
+
 // start return_this
 TEST('return_this', function()
 {