首页 > 其他 > 详细

关于this问题

时间:2015-07-23 15:58:01      阅读:133      评论:0      收藏:0      [点我收藏+]

        对于关键字this,其实很好理解,谁调用我就指向谁。下面举个例子说明:

        其实这也是在学习闭包中的一个案例:

        var name = "The window";

        var obj = {
        name : "The Object",
        getNameFunc : function(){
            return function(){
                return this.name;
            };
        }
    };
    alert(obj.getNameFunc()());

    很多博客中都是利用的这个例子,但是大部分博客说这个代码的结果是The window. 其实这是错误的。

    我们仔细分析下:

    第一步:obj.getNameFunc()    这一步很明显就可以看出我们的调用者是obj;而此时返回了一个函数对象,我们假想一个中间变量temp 接收这个对象。然后执行第二步。

    第二步:从第一步中得知运行到这里了 temp();然后此时调用对象为谁,这里并没明确指出,然而它所处的容器是什么,恰恰是我们的window对象,所以可想而知,在return this.name;这步中的this恰好指的是window。 然后window对象本身就有个默认属性name,且默认值为""。

    由以上得知弹出的对话框中的值为一个空字符串"", 不相信你们可以去测试验证。(如有误,请大神指出,谢谢。)

     


关于this问题

原文:http://my.oschina.net/yuanfy/blog/482846

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!