你想问的应该是obj.prototype.x和obj.x的区别吧。我的理解:前者是使用原型为obj对象添加属性(可以是方法,可以是属性),添加之后所有的obj对象实例均拥有该属性,可以直接这样使用:obj.x---属性,或者obj.x()---方法。后者是为obj对象定义一个属性(不能是方法)

解决方案 »

  1.   

    补充一下:上面说的可能容易误导楼主,区别是,prototype应用于对象,如Array、Boolean、Date、String 等对象,后者应用于对象实例。
      

  2.   

    多谢楼上的回答。
    其实遇到的问题是:
    function abc()
    {
      if (abc.count == undefined) abc.count = 0
      alert(abc.count++);
    }
    a = new abc();
    b = new abc();
    如果把abc()的两行代码的abc.count同时改为abc.prototype.count的话,效果相同,但只把其中一行改变的话,就得不到预期效果,不知道为什么。。
      

  3.   

    function abc()
    {
      if (abc.count == undefined) abc.count = 0
      alert(abc.count++);
      alert(this.count);
     }abc.prototype.count = 2;
    a = new abc();
    b = new abc();
    abc.prototype.count相当于函数内部得this.count
    而abc.count只不过是一个全局变量而已