我是Javascript新手,最近在看一个比较大的Javascript程序(1500行),对于里面的类的定义方式感到十分困惑。假设该类的类名为A。
困惑1:在定义类的成员变量时候原作者用了比较多的var x,y,z语句在构造函数中(A()),但是仅仅是声明而已,并没有进行初始化,另外除了这些变量之外,原作者还在接下来的函数定义中不断通过A.a,A.b...添加成员变量。在一个类中到底是该如何定义变量,是在构造函数中把所有要用到的变量全部定义一遍,还是在需要用到的时候不断添加(本人接触C++和Java程序比较多,对于Javascript的这种基于对象的类定义方式还是很不习惯)。
困惑2:在类中定义函数时一般来说有3中方式,1.function f1(){};2.A.f2 = function(){};3.this.f3 = function(){},这3中函数的定义方式都有什么样的区别?再次声明,本人是Javascript菜鸟,但是因为被这一块困扰多时,也查过一些资料,看过Javascript权威指南中关于类的一章。但是无论是书上还是网上的一些资料所定义的一些类都是比较小型的。因此对于比较大的Javascript程序,到底应该如何来更好地定义类,希望能够得到大家的指教,谢谢!!!

解决方案 »

  1.   

    跟c#中有点相似,就是面向对象的一种写法。如
    function gg(a,b){
      this.a=a;
      this.b=b;
    };
    //赋值
    gg.prototype.a=function()
    {
       this.a=100;
    }gg.prototyp.b=function()
    {
       this.b=200;
    }var cc=new gg();//创建对象
    alert(this.a+"\n"+this.b);
      

  2.   

    可参考我的blog
    http://blog.csdn.net/avon520/archive/2009/01/17/3819751.aspx
      

  3.   


    这么说,JavaScript有类似java的定义方式也有类似C#的定义方式咯?