News for hackers. Stuff that matters.
Re:An Object is not a Hash by lloeki on Tuesday October 09, 2012 @04:47AM (#4630581)
> the so called libraries that have to be declared inside a function (!!)

This scope trick (and really, the whole JS language situation) always reminded me of the "closures vs. objects" koan:

http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/m...

Re:An Object is not a Hash by Avshalom on Tuesday October 09, 2012 @08:51AM (#4631203)
as a note this works in JS too.

  var mariner= {};

  mariner.new = function(){
      var self = {};
      var maxhp = 200;
      var hp = maxhp;
      
      self.heal = function(deltahp) {
          if (hp + deltahp < maxhp){
              hp = hp + deltahp;
          } else {
              hp = maxhp;
          }
      }
      self.sethp = function(newhp) {
          if (newhp < maxhp){
              hp = newhp;
          } else {
              hp = maxhp;
          }
      }
      self.gethp = function(){
          return hp;
      }
      
      return self; 
  }

  var m1 = mariner.new();
  m1.sethp(100);
  m1.heal(13);
  alert(m1.gethp());
(shamelessly stolen from http://lua-users.org/wiki/ObjectOrientationClosureApproach)