• JavaScript this浅析


    在做聊天室的过程中,我遇到了一个小问题,在javascrip中,有没有和c语言中的静态变量类似的对象呢?

    答案就在闭包之中。

    而说到闭包,又得说说那个我视之如地雷的this。this搞明白了,闭包这东西耍起来能不溜吗。

    总结起来,是很简单的,只有在函数作为对象的方法被调用时,this才指向这个对象,否则,皆指向window对象。

    举个例子

                var obj={                               //obj为对象
                    num:1,
                    getNum:function(){                  //getNum为对象的方法
                        alert(this.num);
                    }
                };
                obj.getNum();    //输出1       

    但是,要是用另一个变量引用这个对象的方法呢

                num=2;
                var obj={
                    num:1,
                    getNum:function(){
                        alert(this.num);
                    }
                };
                var wind=obj.getNum;
                wind();               //2

    这时的this指向window。

    我们已经知道,JavaScript可以从构造器中创建对象,那么理论上说,用函数构造器也可以实现例一的功能。

    var myfuc=function(){
    this.name='window';
    }
    var obj=new myfuc();     //构造器返回一个对象,而myfuc是这个对象里的方法。
    alert(obj.name);   //window
  • 相关阅读:
    静静的看twittervision
    MSSQL中的随机函数
    紧张非封闭式开发中
    be my friend
    这个五一
    检讨
    SilverLight,有多少人关心呢?
    并查集模板题P3367 【模板】并查集
    并查集简单介绍
    约数之和模板题
  • 原文地址:https://www.cnblogs.com/puffmoff/p/7230880.html
Copyright © 2020-2023  润新知