问答详情
源自:-

求解JavaScript如何去执行下列代码?

var fullname ='John Doe';

    var obj ={

    fullname:'Colin Ihrig',

    prop:{

    fullname:'Aurelio De Rosa',

    getFullname:function(){

    returnthis.fullname;

    }

    }

    };

    console.log(obj.prop.getFullname());

    var test = obj.prop.getFullname;

    console.log(test());


提问者:__innocence 2016-07-17 19:03

个回答

  • __innocence
    2016-07-25 23:28:30

    第一个输出很明显,是一层一层访问到的值调用getfullname函数,第二个,注意最后一行  console.log(test());

    test后面加了括号,表示test不是一个简单的字符串类型,可以把代码转换一下:把var test = obj.prop.getFullname;这一句换成

     getFullname:function(){

        return this.fullname;}

    很明显,这里return的是上面的var fullname ='John Doe';

    一句话,test不是以obj为原型的


  • __innocence
    2016-07-25 23:20:56

    Aurelio De Rosa

    John Doe

    函数闭包问题应该