最近一直在学习js,遇到这样的问题:
function fun()
{
this.name = 'name';
return [];
}
var a = new fun;
a.name; //输出undefined
但是
function fun()
{
this.name = 'name';
return 2;
}
var a = new fun;
a.name;//输出“name”
为什么两次结果不一样?哪位大神给个解释!
不要返回对象,要不会被重写,你自己打印对象出来看就知道了,return []时a被赋值为[],返回普通类型则是fun的实例对象
http://www.bennadel.com/blog/2522-providing-a-return-value-in-a-javascript-constructor.htm
http://stackoverflow.com/questions/1978049/what-values-can-a-constructor-return-to-avoid-returning-this
http://stackoverflow.com/questions/3350215/what-is-returned-from-a-constructor