码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript this浅析

时间:2017-07-24 21:23:26      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:obj   返回   构造器   javascrip   问题   logs   没有   div   一个   

在做聊天室的过程中,我遇到了一个小问题,在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

 

JavaScript this浅析

标签:obj   返回   构造器   javascrip   问题   logs   没有   div   一个   

原文地址:http://www.cnblogs.com/puffmoff/p/7230880.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!