Skip to main content

Home/ javascript/ Group items tagged metaprogramming

Rss Feed Group items tagged

Javier Neira

fingernails in oatmeal, Metaprogramming: Ruby vs. Javascript - 0 views

  • drew['battleCry']();
  • What we want is the ability to define a method dynamically (given a name) that is also a closure over the lexical scope at the point of method definition.
  • color_name = 'black' Ninja.send(:define_method, 'color') do  puts "#{name}'s color is #{color_name}"end
  • ...5 more annotations...
  • var colorName = "black"; Ninja.prototype['color'] = function () {  puts(this.name + "'s color is " + colorName);}
  • The ubiquity of closures in Javascript is extremely powerful and, as we have seen so far, makes metaprogramming very easy.
  • You can think of a metaclass as a class definition specific to a single instance of a class.
  • This means we can add methods to an object’s metaclass without adding the same behavior to all instances of that object’s class.
  • This means that Javascript does not distinguish between classes/prototypes and instances and, therefore, we can add our desired behavior directly to the instance.
1 - 1 of 1
Showing 20 items per page