显示“未定义”的 JS 警报

JS Alert showing 'undefined'

本文关键字:未定义 JS 警报 显示      更新时间:2023-09-26

你好,

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

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

当我调用此脚本时,我得到显示"5.5"的预期警报框,但是在该框关闭后,我收到另一个警报,仅显示"未定义",任何人都可以对此有所了解吗?

代码如下:

var myObj = {
age : 5,
weight : 5.5,
toString : function(){
    alert(this.weight);
}
}
alert(myObj.toString());

非常感谢

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

第一个警报是显示this.weight 的警报。但是,第二个显示从myObj.toString()函数返回的任何值,并且由于您在没有显式返回值的情况下对该函数进行了编码,因此默认情况下返回undefined

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

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

然后,您只会收到一个警报,如下所示:http://jsfiddle.net/eph7x/

事实上,您可以简单地使用:

alert(myObj);

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