代码改变世界

一段特别绕的js

2008-10-09 17:07  wlstyle  阅读(224)  评论(0)    收藏  举报
the js

看这段js有点绕,首先来分析下X,在这里,首先是用该构造函数创建了一个对象,而后调用了这个对象的一个方法这个方法的名称恰好也是test。当构造函数创建对象后。这里第九行的return在这里是返回这个对象。这个对象有一个属性(msg)和一个方法(test)。当对该对象调用该对象的test方法 是时候,注意到test方法中返回的是this.msg表明是该对象的msg。所以这里x的最终结果是hello。

再来分析Y,在这里没有直接使用new操作符来创建一个一个对象。那么返回的this即是window对象。在这里在globe中添加了一个属性msg='nice'。当第二次调用window对象的方法是时候这里的return this.msg.解释器会在window对象中找这个属性。这里这个属性就是nice。

以上是粗略的理解。