如果一个函数的返回值是一个引用类型(数组、对象或者函数)的数据,那么将这个函数作为构造函数用new运算符执行构造时,运算结果将被它返回值取代,这时候,构造函数体内的this值丢失了,取而代之的是被返回的对象。
例如:
function Example()
{
this.child=0;
return function()
{alert(1);}
}
var instant=new Example();
alert(instant.child);//显示undefined
如果一个函数的返回值是一个引用类型(数组、对象或者函数)的数据,那么将这个函数作为构造函数用new运算符执行构造时,运算结果将被它返回值取代,这时候,构造函数体内的this值丢失了,取而代之的是被返回的对象。
例如:
function Example()
{
this.child=0;
return function()
{alert(1);}
}
var instant=new Example();
alert(instant.child);//显示undefined