日期:2014-05-16  浏览次数:20491 次

muxrwc(需时越兔)请进,其他朋友也可以过来帮忙,谢谢
var   crobj   =   function   (i)   {
var   wc   =   this,   div;
wc.time   =   0;
(div   =   wc.div   =   document.createElement( "div ")).innerHTML   =   (wc.number   =   i);
div.onmouseover   =   function   ()   {
wc.over();
}
div.onmouseout   =   function   ()   {
wc.out();
};
return   div;
};

我想问一下构造函数返回了div,我想问一下那如果return   “123”
我通过类如何取到返回值呢?(不是函数调用,使用var   object=new   crobj(i))

------解决方案--------------------
我通过类如何取到返回值呢?(不是函数调用,使用var object=new crobj(i))

这个不会返回值的。。。

new 后直接就返回对象了,不会返回函数的返回值的。。
------解决方案--------------------
晕。哪个例子,偶要看看。。。
今天困死了。。
------解决方案--------------------
把代码贴上来偶看看。
------解决方案--------------------
经过测试。。发现。。
new 后。。
return 这里的值如果是对象的引用的话,那么则返回这个。否则返回类。。。 - -,真奇妙。。
------解决方案--------------------
document.body.appendChild(new crobj(i).div);

如果你想这样的话
------解决方案--------------------
这样就可以了。。
<script type= "text/javascript ">
var crobj = function (i) {
var wc = this, div;
wc.time = 0;
(div = wc.div = document.createElement( "div ")).innerHTML = (wc.number = i);
div.onmouseover = function () {
wc.over();
}
div.onmouseout = function () {
wc.out();
};
};

crobj.prototype = {

over : function () {
this.time = window.setTimeout( "alert( ' " + this.number + "被P了2S ') ", 2000);
},

out : function () {
window.clearTimeout(this.time);
}

};
window.onload = function () {
for (var i = 0 ; i < 5 ; i ++)
document.body.appendChild(new crobj(i).div);
};
</script>
------解决方案--------------------


这样就没问题了。。嘿嘿。。。
<style type= "text/css ">
div {
width:200px;
height:40px;
line-height:40px;
background-color:#CCCCCC;
border:#000000 3px solid;
margin-top:5px;
}
</style>
<script type= "text/javascript ">
window.onload = function () {
for(i=0;i <5;i++){
var div = document.createElement( "div ");
(function (i) {
div.innerHTML = i; //你这里的I是引用的外面的那个I所以不行。。。
var time;
div.onmouseover = function () {
//var time = window.setTimeout( "alert( ' " + i+ "被P了2S ') ", 2000);
//并且你这里重新的var(声明)了一下time,这样的话这个变量的作用范围就是这个函数内。
//所以外面就访问不到time了。。所以你要把var去掉。。。
time = window.setTimeout( "alert( ' " + i+ "被P了2S ') ", 2000); //即
};
div.onmouseout = function () {
window.clearTimeout(time);
};
})(i);
document.body.appendChild(div);
}
};
</script>
------解决方案--------------------
return 这里的值如果是对象的引用的话,那么则返回这个。否则返回类。。。 - -,真奇妙。。
这个

这个的意思就是

new的话,一般都返回实例对象...
但是如果你的构造函数里有return的话..return的内容是对象.这样new操作后..
就不会返回实例对象,而是返回return的这个对象...