码迷,mamicode.com
首页 > 其他好文 > 详细

关于this问题

时间:2015-07-23 16:01:16      阅读:98      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!