函数返回正确的值和“未定义”

Function returns correct value and 'undefined'

本文关键字:未定义 返回 函数      更新时间:2023-09-26

我有以下代码:

module = {
        submodule: {
            value: 'foo',
            init: function(){
                console.log(module.submodule.value);
            }
        }
    };

当我通过控制台测试此代码时,我得到了正确的值和undefined但是当我在函数内使用相同的代码return语句init我只得到正确的值。我想这是那些常见的初学者和琐碎的问题之一,但我目前无法理解这个:)

你的函数没有返回任何内容。控制台仅显示函数的返回值。你的函数不需要返回一些东西,但如果你想让控制台最终显示"值",那么使用

module = {
        submodule: {
            value: 'foo',
            init: function(){
                return module.submodule.value;
            }
        }
    };

发生的情况是每个函数"返回"一些东西。这东西可以在其他地方用作输入。例如

function getName(){
return "Manish";
}
alert(getName()) //will display "Manish" sans quotes

你可以做这样的事情

function sin(theta){
//do some math voodoo, store result in "result"
return result;
}
alert((sin(theta)*sin(theta)-5)/Math.sqrt(1-sin(theta)*sin(theta))//random thingy

但是,如果你决定不让你的函数返回一些东西(或使用return;因为它可以立即退出函数),它将返回一个未定义的值,因为,好吧,你没有定义你想要它返回的内容。WHich 很好,只要您不尝试使用返回的值。

控制台返回 undefined,因为您的方法不返回任何值,并且控制台在从控制台调用时始终输出函数的返回。

如果在 init 方法中添加 return true,它将输出值和 true。

这只是控制台的行为,您没有看到任何问题。