The Science of Programming/SwayPresentations/Objects/ClassAndObjectComponents2

Class and Object Components, continued

Here's an attempt...

   var z =
   {
   var z_shared = { var count = 0; this; };
   
   function z()
       {
       var shared = z_shared;
       var count = 0;
       shared . count += 1;
       count += 1;
       this;
       }
   };
   
   function x()
       {
       extends(z());
       }

Testing...

   inspect(x() . shared . count);
   inspect(x() . count);
   inspect(x() . shared . count);

Output is as desired:

   x() . shared . count is 1
   x() . count is 1
   x() . shared . count is 3

The beauty of concatenation...