代码改变世界

JavaScript构造函数返回值问题

2012-02-10 17:53  sniper007  阅读(495)  评论(1编辑  收藏  举报

如果一个函数的返回值是一个引用类型(数组、对象或者函数)的数据,那么将这个函数作为构造函数用new运算符执行构造时,运算结果将被它返回值取代,这时候,构造函数体内的this值丢失了,取而代之的是被返回的对象。

例如:

function Example()

{

   this.child=0;

 

return function()

          {alert(1);}

}

var instant=new Example();

alert(instant.child);//显示undefined