function ss(){
 this.dd(){
  }
}ss.prototype.cc=function(){}请问下  当ss()这个父对象被继承后 2个方法 dd()和 cc()有啥不同越详细越好 谢谢

解决方案 »

  1.   

    继承后,如果父类是一个类,则会继承其属性,方法(包括用prototype声明的),静态方法,否则只有属性和方法。
    ====================================
    prototype对象是个模版,要实例化的对象都以这个模版为基础.总而言之,prototype对象的任何属性和方法都会被传递到那个类的所有实例,原型链利用这种功能来实现继承机制.查看以下代码:        function ClassA(){
                
            }
            
            ClassA.prototype.color='red';
            ClassA.prototype.getColor=function(){
                document.write(this.color);
            }
            
            function ClassB(){
            
            }
            
            var a= new ClassA();
            ClassB.prototype = a;
    原型链的神奇之处在于最后一句代码.这里把ClassB的prototype属性设置成ClassA的实例,这样就将ClassA的所有属性和方法逐个赋值给了ClassB的prototype属性.我们这样理解:现在实例a有以下属性:color实例a有以下方法:getColor那么将a赋值给ClassB.prototype之后,ClassB的原型也就有了color属性和getColor方法.那么在实例化ClassB的实例时,作为ClassB的原型,会将自身所有的方法和属性都传递给ClassB的实例,从而实现了继承.http://www.cnblogs.com/guowei1027/archive/2009/12/15/1624251.html
      

  2.   

    也就是说 排除 性能和加载顺序   静态方法 和用prototype声明的方法 调用和继承的都是一样的?
      

  3.   

    还有这样比如 
    var s= new ss();
    function ss(){
       this.dd=function(){}
    }
    ss.prototype.cc=function(){
        1:s.dd();
        2:和this.dd();是否可以 或者this.dd()根本就不可以?
    }
    ss.prototype.ff=function(){
        1:s.ff();
        2:和this.ff();区别不晓得 大家明白我的意思不}
      

  4.   

    1:s.ff();又或者  2:和this.ff();2种方式 那个更好点。、。。
      

  5.   

    首先,new 不叫继承,而叫实例化
    对像内当然用的是this, 所以用 this.dd()
      

  6.   

    由于闭包的原因,dd享受获取构造函数内部变量的特权,而prototype则没有。
    所以可以用来模拟私有变量。
    function class1(){
        var x = 0;
        this.setX = function(val){x = val;};
        this.getX = function(){return x;};
    }
      

  7.   

    prototype也能实现上面的效果
    function ss(){
      this.setX(0)
    }
    ss.prototype.setX=function(x){
    var _x=x
    this.getX=function(){
      return _x
    }}