JavaScript构造函数返回值问题

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

例如:

function Example()

{

this.child=0;

return function()

{alert(1);}

}

var instant=new Example();

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