我正在学习JavaScript,这是我的第一周:)



var Module = (function () {
    // code
    var publicMethod = {};

    var privateMethod = function(someStringToBePassed) {
        debug("I love USA. "+someStringToBePassed);
    }

    publicMethod.someFunction = function() {
        privateMethod("USA is sexy");
    }
    return publicMethod;
})();

debug(Module.someFunction());





我正在Sublime中执行此操作。我看到以下结果。

--> I love USA. USA is sexy
--> undefined


请解释为什么我在这里看到未定义。

[Finished in 0.0s]


请告诉我为什么我在结果中看到“未定义”

最佳答案

您不会从someFunction返回任何内容。尝试这个:

现在someFunction返回privateMethod的值。 privateMethod返回构造的字符串。



var Module = (function () {
// code
var publicMethod = {};

var privateMethod = function(someStringToBePassed) {
return "I love USA. "+someStringToBePassed;
}

publicMethod.someFunction = function() {
return privateMethod("USA is sexy");
}
return publicMethod;
})();

debug(Module.someFunction());

07-24 20:35