function k(){this.k=123;}请问这里的this指什么?this指调用他的对象,这里没有调用他的对象window,那么指什么?

解决方案 »

  1.   

    <script type="text/javascript">
    alert(this);//1
    this.close();//1-1
    function k(){
       alert(this);//2
       this.k = 123;//2-2
       alert(k);
    }
    k().k;</script>
    1--此处的this代表window对象,因此1-1 的this.close();将会执行关闭浏览器操作
    2--此处的this代表function k()自己。因此2-2的this.k可以理解成为函数(对象)k()的属性k赋值123大概就是这个意思。具体的可看下http://blog.csdn.net/Apollo47/archive/2009/07/26/4381822.aspx这个里面对javascript将的很详细
      

  2.   

    var Test{
        a:1,
        b:2,
        c:function(){
            alert("ss");
        }    
    }
    这样写可能比较好理解一点,var tt = new Test();
    alert(tt.a);
    alert(tt.b);
    tt.c();也可以这样写function Test(){
        this.a = 1;
        this.b = 2;
        this.c = function(){
            alert('ss');
        }
    }
    var tt = new Test();alert(tt.a);
    alert(tt.b);
    tt.c();
      

  3.   

    var test = {
    "a":2,
    "b":3,
    "c":function(){
    alert('1');
    }
    };
    上面的写错勒应该是这样。
      

  4.   

    var test = function(){
    this.a = 5;
    this.b = 4;
    function c(){
    alert('ss');
    }

    this.d = function() {
    alert('haha');
    }
    c(); }
    var tt = new test();
    tt.d();第一中写法不支持用 new申明,可以自己测试