<script language=javascript>
function classA(a,b){
  this.a=a;
  this.b=b;
  this.add=add;
  function add(){
    return a+b;
  }
}  var cls=new classA(3,5);
  alert(cls.add());</script>

解决方案 »

  1.   

    <script>// Object constructorfunction lib_obj(){  
    this.x;
    }
    lib_obj.prototype.setX = function(v){
         this.x = v;
    }lib_obj.prototype.getX = function(v){
         alert(this.x);
    }// Create Browsercheck Object
    var myObj = new lib_obj();myObj.setX(5);
    myObj.getX();myObj.setX(6);
    myObj.getX();</script>
      

  2.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function THello(){
      this.text='hello world';
      this.disp=disp;
      this.del=del;
    }
    function disp(){
      alert(this.text)
    }
    function del(){
       delete this
    }
    hello=new THello();
    window.hello.disp()
    //delete hello//-->
    </SCRIPT>
      

  3.   

    我认为这并不是一个类,最初我也认为这是一个类,确实相似。
    js的new 作用是把function作为[object]并调用object的构造器创建的实例,并返回这个实例的指针(我不知道这里是引用还是指针,多半是引用,但借用C++的语言的说法),C++中调用你的类的构造器或直接使用系统默认的构造器。上面的代码实际上是这样的,
    hello=new Object();
    hello.text='hello world';
    hello.disp=disp;
    hello.disp()
    这只是我的理解,我认为你并没有创建自己的类,更没有创建任何对象,只是创建了某个对象的实例,虽然这个实例在面向对象中人就理解为一个对象。
    js无可厚非是基于对象的语言,但是那是因为js已经为你创建好了一切对象,就象你可你直接使用Date对象而无需创建,但是基于对象语言仍旧是面向对象语言,只是上面说的她已经创建好了对象。
    js对象:Array , string,Math,Date,
    浏览器对象:window,document,location,Navigator,link,history,anchor,form;
      

  4.   

    我认为这并不是一个类,最初我也认为这是一个类,确实相似。
    js的new 作用是把function作为[object]并调用object的构造器创建的实例,并返回这个实例的指针(我不知道这里是引用还是指针,多半是引用,但借用C++的语言的说法),C++中调用你的类的构造器或直接使用系统默认的构造器。上面的代码实际上是这样的,
    hello=new Object();
    hello.text='hello world';
    hello.disp=disp;
    hello.disp()
    这只是我的理解,我认为你并没有创建自己的类,更没有创建任何对象,只是创建了某个对象的实例,虽然这个实例在面向对象中人就理解为一个对象。
    js无可厚非是基于对象的语言,但是那是因为js已经为你创建好了一切对象,就象你可你直接使用Date对象而无需创建,但是基于对象语言仍旧是面向对象语言,只是上面说的她已经创建好了对象。
    js对象:Array , string,Math,Date,
    浏览器对象:window,document,location,Navigator,link,history,anchor,form;
    这些只是我个人理解,由于手头除了MSDN没有更多资料,我也是初学者!
      

  5.   

    忘了提到javascript的delete,
    你可用delete删除一个对象的属性或数组对象的某个元素,
    exp:delete hello.text或者delete window.hello.text;
    hello.disp()
    你不可以这样:delete window.hello
    但可以这样:delete hello
    来隐了,被你勾起了聊天的隐,在js中却是[无法]创建自己的类
    你这样试试:alert(hello)你会看到[object Object],
    也就是说js的new永远返回object类型,这和C++等试不一样的;
    以C++为例:
    new的过程是这样的,当new 调用成功会在空闲存储空间分配内存,然后调用对象的构造函数,并且返回指针,这个指针的类型为指针指向的被创建对象的类型(pointer-to-the-object-type-created)。你可以从这里看到js中没有用户自己的类,它只是一个把你的函数作为object类,并不是你的类,
    但是人就可以认为是自己的类,因为引入类的概念目的是封装数据,有效的管理大量数据而不会出错,所以强烈建议使用上面大家提供的方法调用函数和使用变量,这样很安全,而且很容易把你的脚本扩展。
    【以上只是我个人的理解,并非丛书中来,所以肯定事有错误的。我不想误人子弟,只是发表个人思想】
      

  6.   

    授人与鱼不如授人与渔。关于你的问题,最重要的是:
    JavaScript并不是一个传统的面向对象(OO)的语言,而是一个基于对象的原型(prototype)语言。其特征是,没有类与对象的划分!像继承这样的功能不是通过类继承来的,而是通过原型继承来的,也就是从原型对象拷贝出来一个新对象。此外,另一个重要的区别是,JavaScript中一切都是对象,连函数(function)也是对象!而不像C++和Java中方法不是对象而只是类的附属物。所以JavaScript中,函数也可以有成员(而且这个成员也可以是函数),函数可以像别的对象一样被当作参数传递到另一个函数中去,也可以作为结果被另一个函数返回……因此JavaScript具有比传统OO语言更强的动态演化的能力。JavaScript的这种特性又被称为1-level。