undefined从何而来

liuhe688 2009-11-09 11:05:13
js代码如下:

<script type="text/javascript">
var o1 = {testvar:11, fun:function() { alert('o1: ' + this.testvar); }};
var o2 = {testvar:22, fun:function() { alert('o2: ' + this.testvar); }};

alert(o1.fun());
alert(o2.fun());
alert(o1.fun.call(o2));
</script>

预期的效果是相继弹出:
o1:11
o2:22
o2:22
但是弹出的值却是:
o1:11
undefined
o2:22
undefined
o2:22
undefined
每次弹出函数执行的结果后总是弹出一个undefined,这个undefined是到底从何而来,请高手指点。
...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuhe688 2009-11-09
  • 打赏
  • 举报
回复
嗯,学习了。
chen_xiangguo 2009-11-09
  • 打赏
  • 举报
回复
又见到这样定义类了,这样会浪费内存,应该这样

$(function()
{
var o1=new Test(11);
alert(o1.fun())
});
function Test(testvar)
{
this.testvar=testvar;
if(typeof Test._initial=='undefined')
{
Test.prototype.fun=function()
{
return this.testvar;
}
}
Test._initial=true;
}

undefined是什么,就是没定义的意思
比方说:
var a;
alert(a)
返回就是"undefined"
liuhe688 2009-11-09
  • 打赏
  • 举报
回复
本来只是想调用方法,却将外面加上了alert,是我的失误。谢谢桃子了。
wtcsy 2009-11-09
  • 打赏
  • 举报
回复
alert(alert('a'))
也是弹出一次a 一次undefined
跟你这上面有区别吗?????????

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧