function extend(subClass, superClass){    function inheritance(){};
    inheritance.prototype  = superClass.prototype;( 这里不明白是什么意思?)
    
    subClass.prototype = new inheritance();
    subClass.prototype.constructor = subClass;
    subClass.baseConstructor = superClass  ( 这里是不是为子类subClass添加个
                                             baseConstructor属性为superClass的引用?)
    
    //以下的都不是很明白了
    if(superClass.__super__){
        superClass.prototype.__super__ = superClass.__super__;
    }
    subClass.__super__ = superClass.prototype;
}求高手详细解答下~~!

解决方案 »

  1.   

    a.prototype = b.prototype
    因为a实例的__proto__会指向a.prototype,然后a.prototype又指向b.prototype
    所以a实例的__proto__会指向b.prototype,于是a的实例可以访问b构造函数原型里定义的属性或者方法。
      

  2.   


     if(superClass.__super__){
      superClass.prototype.__super__ = superClass.__super__;
      }
      subClass.__super__ = superClass.prototype;
    那这段是表达什么意思啊?
      

  3.   

    hi
    这里得__super__应该是程序自己定义得变量。。
    能把程序补齐全吗?
      

  4.   

    没有了,这段就是完整的,大体意思我是明白的 extend()函数的两个变量就是放一个子类和一个父类,子类可以继承父类的属性和方法,但修改子类里面的属性和方法不会影响父类,但这个函数里面有些语句我看得不是很懂