问题描述
- 跪求大神指教一个js问题
-
最近一直在学习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
时间: 2024-11-27 13:15:41