此博文参考天涯的Blog 的《关于js原型(prototype)》:http://hi.baidu.com/sky000/blog/item/19723dc75f6664d0d0006041.html
    var a = function(){};
    var b = new a();
    a.prototype={
      m: function(){alert(123)},
      n: function(){alert(456)}
    }
   b.n();

   报错,为什么呢?当执行var b = new a()时候,b继承了a的默认原型,而a.prototype ={}则修改了a的原型,所以b.n()并没有定义。  解决问题的方法有两种:
    第一。  把a.prototype ={}放在 var b = new a()的前面
    第二。  使用a.prototype.n = function(){alert(456)} 的形式
    第三.   使用Function.prototype.method:
            Function.prototype.method = function(name,fn){
               this.prototype[name] =fn;
            }
            var a = function(){};
            var b = new a();
            a.method("n",function(){alert(123)})
            b.n();
      其中this指的是Function.prototype  ,关于这个的理解参看http://freejava.javaeye.com/blog/691633