急,请问javascript的this问题?
<script language="javascript">
function s(){
alert(this==s);
}
s();
</script>书上说this的当前对象就是函数名s了,为什么this==s返回的是false呢?请指教

解决方案 »

  1.   

    this,始终指向调用它的对象
    这里的this指的是window
      

  2.   

    study...this关键字还是让人头痛的
      

  3.   

    this始终指向调用它的对象 
      

  4.   

    alert(this==s)
    相当于
    window.alert(this==s)
    此时调用this的是window
      

  5.   

    window.alert(this==s) 这样理解是正确的。
      

  6.   

    this是指向当前对象的指针。理解很复杂,不过LZ的用法肯定返回Flase,因为s的值是一个字符串,如果没有在后面用括号的话,相当于运行了s.toString()。一个字符串能和指针相等么?在教你个使用this的技巧。当遇到这样的情况时
    function a()
    {
     this.v = 1;
     function b()
     {
      this.v = 2;
     }
    }
    想在b函数中更改a中的v值时,由于b函数的this指针已经指向了b函数,所以直接调用this.v是不行的。
    这时候可以使用
    function a()
    {
     this.v = 1;
     _parent = this;function b()
    {
     _parent.v = 2;
    }
    }
    这样就能更改了
      

  7.   

    this指针是可以被保存的,只要对象应用计数器没有清零,这个对象一直存在,所以用完之后要消除对this的应用
      

  8.   


    4楼的见解不对
    function s(){ 
    alert(this==window); 
    };
    var b={};
    s();//返回true
    s.apply(b);//返回falsealert(this==window)中this是形参指向函数中的this,跟window.alert没有关系
      

  9.   

     
    s()
    相当 window.s()window是可省略的所以this=window你记住alert 是s函数执行那个时候判断this 
    这时候s是在window对象里运行这是关键
      

  10.   

    对各位的说法做个总结:)var b={};
    function s(){ 
    alert(this==window); 
    };
    function t(){
    alert(this==b)
    }s();//返回true
    t.apply(b);//返回true
      

  11.   


    晕~~不要来误导别人...this,始终指向调用它的对象       function s(){
               alert(this);
               alert(this==s);
           }
           s(); 
           s.call(s);
      

  12.   

    头疼。 有很多时候都搞不清楚 每个地方的this是代表什么!!