解决方案 »

  1.   

    obj.nameFunc()  相当于调用了obj对象中的nameFunc函数,期结果是一个内部匿名函数,即
    function(){
                      return this.name;
                    };
    obj.nameFunc()()则是调用了上面那个匿名函数,由于现在的执行环境是位于最外围的,所以上面那个匿名函数中的this被绑定为window,this.name 就是 window.name 也就是你在最外面定义的那个name变量。
    而针对第二种情况,obj.nameFunc()同样是调用了obj对象的nameFunc函数。但该函数是obj的成员函数,它在被调用时其内部的this被绑定为obj对象。进而that变量指向的也就是obj对象了,再后面执行obj.nameFunc()() 时,返回的this.name 就是obj.name
      

  2.   


    var name = "the window";
            var obj = {
                name: 'fun',
                //this在每个function中都是独立的个体
                nameFunc : function(){//这个function是obj的方法,在这个function中的this指向obj对象
                    return function(){//这个function不是obj的方法,在这个function中的this指向window对象
                      return this.name;
                    };
                }
            };        alert(obj.nameFunc()());
      

  3.   


    是匿名函数的话,第一段代码相当于以下这样吗?
    var name = "the window";
            var obj = {
                name: 'fun',
                nameFunc : function(){
                    return A;
                }
            };        function A(){
                return this.name;
            };        alert(obj.nameFunc()());
      

  4.   

    额~~是我的问题了,我写的东西,都是按照我自己的思路在写,没有太考虑看的人是不是能理解。<a href="http://www.zhangyunling.com/?p=134" target="_blank">浅析作用域链</a>
    <a href="http://www.zhangyunling.com/?p=140" target="_blank">浅析赋值表达式</a>
    <a href="http://www.zhangyunling.com/?p=251" target="_blank">函数中this的指向-简单认识</a>
    <a href="http://www.zhangyunling.com/?p=293" target="_blank">构造函数模式的一点新的认识</a>有兴趣,看下前两篇看看呗。
      

  5.   

    浅析作用域链浅析赋值表达式函数中this的指向-简单认识构造函数模式的一点新的认识
      

  6.   


    是匿名函数的话,第一段代码相当于以下这样吗?
    var name = "the window";
            var obj = {
                name: 'fun',
                nameFunc : function(){
                    return A;
                }
            };        function A(){
                return this.name;
            };        alert(obj.nameFunc()());
    可以这么理解。因为函数A是被返回后调用的,在它内部的this其实就是它被调用的环境(即window)。