LZ说的三处的this都是指JSClass的当前实例的指针, 提供了一种访问自己的属性和方法的方式
类似PHP等语言也支持这样的方式

解决方案 »

  1.   

    第一处,第二处,第三处一样(THIS代表对象自己(JSClass)的引用.)
    相当于就是类里的属性
    var jc = new JSClass();
    jc.m_Element;
    jc.m_text;
      

  2.   

    function JSClass()
      {
          this.m_Text = 'division element';
          this.m_Element = document.createElement('DIV');
          this.m_Element.innerHTML = this.m_Text;
          //第一处,下面这句的this指什么东东? 
          this.m_Element.attachEvent('onclick', this.ToString);
      }
      //第二处,这句的this指什么东东? 
      JSClass.prototype.Render = function()
      {
          document.body.appendChild(this.m_Element);
      }     
      //第三处,这句的this指什么东东?
      JSClass.prototype.ToString = function()
      {
          alert(this.m_Text);
      };  var jc = new JSClass();
      jc.Render(); 
      jc.ToString();  它先给JSClass类加了个对象“m_Element”,是个DIV,this代表JSClass本身。第一处的This是给DIv的对象加了个Onclick的事件,表示Onclick时运行ToString事件。
      第二处的This是表示运行Render方法的对象。语句作用是给JSClass加了个属性,表示JSClass的实例有个叫“Render”的方法,可以将JSClass中的“m_Element”对象加载(用AppendChild方法)到document.body的对象里。
      第三处是表示运行ToString方法的对象。是对JSClass类加了第三个属性,表示在运行ToString方法时,用ALert的命令显示出“m_Text”的内容。  最后那段内容,意思是先用JSClass的类建了一个叫jc的实例,
      然后运行JSClass类的Render方法,将jc实例中的DIV加载到BODY对象中。
      最后Alert出jc.m_Text的内容。
      

  3.   

    function JSClass()
    {
        this.m_Text = 'division element'; //定义了一个字符串
        this.m_Element = document.createElement('DIV'); //建立了一个DIV元素
        this.m_Element.innerHTML = this.m_Text; //将新建DIV元素m_Element中的内容改为第一个字符串m_Text的内容
        this.m_Element.attachEvent('onclick', this.ToString); //为DIV(m_Element)加载事件Onclick,点击时运行JSClass类的ToString方法。
    }JSClass.prototype.Render = function() //为JSClass类添加Render方法
    {
        document.body.appendChild(this.m_Element); //将JSClass类中的m_Element元素加载到页面的Body对象中。
    }JSClass.prototype.ToString = function() //为JSClass类添加ToString方法
    {
        alert(this.m_Text); //将JSClass类中的m_Text中的内容用Alert的方法显示
    };var jc = new JSClass(); //新建一个实例
    jc.Render();  //运行JSClass的Render方法,将jc中的DIV放到BODY中
    jc.ToString(); //显示jc.m_Text的内容
      

  4.   

    不知道各位大侠是自己分析的还是试过
    事实上,jc.ToString();不是jc.m_Text的内容,是undefined。不知道哪个能给解释一下,你们再试试呗。
      

  5.   

    你在构造对象的时候没有给参数当然是undefined
    你用下面的语句尝试一下就知道了
    var jc = new JSClass('a','b','c'); //新建一个实例
    jc.Render();  //运行JSClass的Render方法,将jc中的DIV放到BODY中
    jc.ToString(); //显示jc.m_Text的内容
      

  6.   

    var jc = new JSClass();
     
      //jc.Render();   你这样调用body对象没有生存``会出错` 注释就可以看到效果了  jc.ToString();或者
    window.onload = function(){
      var jc = new JSClass();
      jc.Render(); 
      jc.ToString();
    }
      

  7.   

    对象内部成员函数中this 引用的即是对象本身
      

  8.   

    this永远指向用当前构造函数创建的对象
      

  9.   

    说明
    this 关键字通常在对象的 构造函数中使用,用来引用对象。示例
    在下面示例中,this 指的是新创建的 Car 对象,并给三个属性赋值。 function Car(color, make, model){
      this.color = color;
      this.make = make;
      this.model = model;
    }