函数返回正确的值和'undefined'

时间:2012-04-25 09:14:56

标签: javascript function return

我有以下代码:

module = {

        submodule: {

            value: 'foo',

            init: function(){
                console.log(module.submodule.value);
            }

        }

    };

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

2 个答案:

答案 0 :(得分:3)

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

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

这只是控制台的行为,你没有看到任何错误。

答案 1 :(得分:3)

您的功能不会返回任何内容。控制台仅显示函数的返回值。您的函数无需返回某些内容,但如果您希望控制台最终显示" value",请使用

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;,因为它可以立即退出函数),它将返回一个未定义的值,因为,你没有&#39 ; t定义你想要它返回的内容。只要你不尝试使用返回的值,这很好。