3 ms·
> 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
by lloeki 14y ago
> 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/msg03277.html http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/m...
- Avshalom 14y agoas 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 http://lua-users.org/wiki/ObjectOrientationClosureApproach)