• 关于this问题


    对于关键字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,且默认值为""。

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

  • 相关阅读:
    Java 面向对象_继承
    Java 面向对象
    使用 pykafka 进行消费
    oracle 的分页、截断查询
    Day03
    Day02 计算机的组成与编程语言
    Day01 MarkDown的使用
    Java方法的重点
    Scanner的小细节
    Java包机制和Javadoc的使用
  • 原文地址:https://www.cnblogs.com/yuanfy008/p/5070423.html
Copyright © 2020-2023  润新知