prototype是Jscript中所有对象(包括自定义对象)都具有的一个特殊对象,它在对语言提供的对象进行扩展时很方便,例如给String对象增加方法ltrim(),可以
String.prototype.ltrim = function()
{
   ........;
}
portotype的properties可用于创建继承属性或共享方法;
在你的写法中,并未充分体现prototype的特点用法,故你的两种代码没有什么不同
下面两段则有所不同
new MyObject();
MyObject.prototype.p2 = Math.PI;

function MyObject () 
{
   this.p2=3.14;
}
一个是继承一个是定义

解决方案 »

  1.   

    这样的吗?那么是不是可以说用prototype方式定义的类是一个虚类,可以继承和重载;而用function方式定义的类是"终点",不可以再继承和重载呢?
      

  2.   

    no,no,no
    prototype可以说是任何一个对象都具有的无论是系统的,还是自定义的,当你用function定义了一个对象后,比如AOject,那么当你定义对象BObject时,你可以通过prototype继承AObject的属性方法,此外你还可以通过prototype对A对象进行扩展
      

  3.   

    我明白了,是不是可以这样:
    function clsA(...)
    {
        this.a=...
        this.b=...
    }function clsB(...)
    {
        this.prototype=clsA.prototype;
        this.b=...
        this.c=...
    }
    这样来实现继承和重载?
      

  4.   

    no
    prototype可以看作是一个辅助对象;
    在clsB继承clsA的属性时,可以
    function clsA(...)
    {
        this.a=...
        this.b=...
    }function clsB(...)
    {
        //*****  
           this.prototype.a=clsA.prototype.a;
        //*****
        this.b=...
        this.c=...
    }