js的function中的this

2010-8-29 22:0:52

function xxoo(){
    this.name="小刀";
}
var k=new xxoo;
alert(k.name);
alert(window.name);
alert(window.k.name);

上面的代码执行后会看到弹出小刀   空   小刀来,那么为什么会这样呢,我们来看另一段代码。

 

function xxoo(){
    this.name="小刀";
}
xxoo();
alert(window.name);

上面这段代码大家也会看到弹出小刀来,为什么上面的window.name是空呢?下面我为在家讲解一下。

关键在于this上,xxoo()这种形式是执行函数xxoo,所有函数执行是this为window,这时候name就会挂载到window,当new时这时候解析器会把k当作this,然后把this的属性和方法转接到k上面,而这时候k是全局变量,也就是window下的变量,这样window.k.name就可以得到同样的结果,我没有测试FF,因为在网吧,在ie是可以window.k.name的。

点击这里获取该日志的TrackBack引用地址
上一篇: 发布一个asp上传的吧,只有3K,应该可以说是asp最精简的无组件上传类下一篇: ASP DateDiff 函数 比较分用n
发布:lovepoco | 分类:javascript的学习 | 评论:0 | 引用:0 | 浏览:

评论:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新评论及回复