単体で使いたかったので、Mozillaのをコンパイルしてみた。
http://lxr.mozilla.org/mozilla/source/js/src/README.html

 #!/usr/bin/env js

 function HelloWorld() {
   this.sayHello = function() {
     print("Hello")
   }
 }

 var world = new HelloWorld()
 world.sayHello()

 world.sayHi = function (name){ print("Hi " + name) }
 world.sayHi("Tea")

 // クラスにメソッドを追加するには prototype
 // プロパティに設定する。 
 HelloWorld.prototype.hello = function() {
   this.sayHello()
 }
 world.hello()

実行結果は、

 Hello
 Hi Tea
 Hello

ProthonやE言語、
Rubyでも問題なく出来るんだけど、Pythonでは少し面倒。classmethodやstaticmethod関数はあるのに、インスタンスメソッドを作るビルトイン関数がないんだよなぁ ...

 def instancemethod(func):
   class _Class:
     def _func(self, *args, **keys):
       return func(self, *args, **keys)
   return _Class().func

 class Foo: pass
 def hi(self, name): print "Hi %s" % name

 obj = Foo()
 obj.sayHi = instancemethod(hi)
 obj.sayHi("TeaMiKL")

obj.sayHi に関数を代入したいが、
functionとmethodの違いの為、自分でselfを渡さないといけない。

obj.sayHi = hi
obj.sayHi(obj, "TeaMiKL")

これがインスタンスでなくクラスの場合は、
setattr(Foo, "sayHi", hi)または、
Foo.sayHi = hi でメソッドを追加設定できる。