JS Alert显示'undefined'

时间:2013-10-11 11:55:27

标签: javascript

你好,

我昨晚刚从C#/ C ++转到JavaScript,我很喜欢它!

我刚刚遇到一些我不明白的行为,想知道是否有人可以对此有所了解?

当我调用这个脚本时,我得到的预期警告框显示为“5.5”,但是在该框关闭后我得到另一个警告只是显示“未定义”,有人可以对此有所了解吗?

以下代码:

var myObj = {

age : 5,
weight : 5.5,

toString : function(){
    alert(this.weight);
}

}

alert(myObj.toString());

非常感谢

1 个答案:

答案 0 :(得分:6)

您的代码调用alert()两次。

第一个警告是显示this.weight的警报。但是第二个显示从myObj.toString()函数返回的任何值,并且由于您编写了没有显式返回值的函数,因此默认返回undefined

通常.toString()函数实际上会返回一个字符串,所以你应该这样做:

toString : function(){
    return this.weight.toString();
}

然后您将获得一个警报,如下所示:http://jsfiddle.net/eph7x/

然后你可以简单地使用:

alert(myObj);

...因为您的自定义.toString()会自动调用。