繁体   English   中英

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

[英]Function returns correct value and 'undefined'

我有以下代码:

module = {

        submodule: {

            value: 'foo',

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

        }

    };

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

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

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

只是控制台的行为,您看不到任何错误。

您的函数未返回任何内容。 控制台仅显示该函数的返回值。 您的函数无需返回任何内容,但是如果您希望控制台最终显示“值”,则使用

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;因为它可以立即退出该函数),它将返回一个未定义的值,因为您没有定义您希望它返回的内容 只要您不尝试使用返回值,就可以。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM