看以下代码:function P(){
return P.t;
this.name="world";
}
P.t={ name : "Hello" };
var test=new P();
alert(test.name);我觉得结果应该是undefined,但结果是Hello
我的理解是 new P() 的时候应该是新创建了一个对象,然后返回这个新创建的对象,尽管构造函数里边已经有return语句。
大家是怎么理解的啊???
return P.t;
this.name="world";
}
P.t={ name : "Hello" };
var test=new P();
alert(test.name);我觉得结果应该是undefined,但结果是Hello
我的理解是 new P() 的时候应该是新创建了一个对象,然后返回这个新创建的对象,尽管构造函数里边已经有return语句。
大家是怎么理解的啊???
解决方案 »
- 一套整体的手机应用小游戏开发的详细步骤
- 高手帮小弟看看,这是什么问题,谢谢
- 请问在网页中,如何判断windows media player播放结束?
- 借贵宝地小弟再发两贴,请showbo版大进来露个脸,感谢版大无私帮助!
- 如何用javascript实现选取图片的一个范围?
- ●●●●●●●●●●●●关于层的隐藏!!!谢谢●●●●●●●●●●●●
- 请指教
- javascript的中文问题
- 急!在javascript中如何清除<div>中用insertAdjacentHTML方法加入的对象?
- 如何用javascript实现随机数的产生
- JavaScript无法在浏览器上正常显示(由于毕业设计,非常急)
- jquery xml中的声明问题
function P(){//3
return P.t;
this.name="world";
}
P.t={ name : "Hello" };//1
var test=new P();//2
alert(test.name);//4new P(); ——> return P.t; ——>P.t={name:"Hello"}即new P()返回结果是{name:"Hello"}。
相当于:var test = {name:"Hello"}。
所以alert(test.name)的结果是"Hello"
function P(){
return P.t;//返回了
this.name="world";//这句永远不会执行到
}
P.t={ name : "Hello" };//如果没有这句,就会是undefined了
var test=new P();//相当于:var test = {name:"Hello"}。
alert(test.name);
p.t={ name: "Hello"};
和
return P.t这两个P.t其实是指向同一个内存区域
function P(){
return P.t;
this.name="world";
}
P.t="heh";
var test=new P();
alert(test.name);
现在就是你想要的了吧?
如果你的构造器有return ,并且返回的是对象的话,那么将返回这个对象