升华中的Javascript执行错误
我正在学习JavaScript,这是我的第一周: 变量模块=函数{ //代码 var publicMethod={}; var privateMethod=函数SomeStringToPassed{ 我爱美国。+有些东西需要分开; } publicMethod.someFunction=函数{ privateMethodUSA是性感的; } 返回法; };升华中的Javascript执行错误,javascript,undefined,sublimetext3,Javascript,Undefined,Sublimetext3,我正在学习JavaScript,这是我的第一周: 变量模块=函数{ //代码 var publicMethod={}; var privateMethod=函数SomeStringToPassed{ 我爱美国。+有些东西需要分开; } publicMethod.someFunction=函数{ privateMethodUSA是性感的; } 返回法; }; debugModule.someFunction 你没有从某个函数返回任何东西。试试这个: 现在,someFunction返回privat
debugModule.someFunction 你没有从某个函数返回任何东西。试试这个: 现在,someFunction返回privateMethod的值。privateMethod返回构造的字符串 变量模块=函数{ //代码 var publicMethod={}; var privateMethod=函数SomeStringToPassed{ 返回我爱美国+一些需要分离的东西; } publicMethod.someFunction=函数{ 还私生活方式美国性感; } 返回法; };
debugModule.someFunction;这是因为您正在调用someFunction,然后立即将结果传递给debug。要么删除第二个调试,要么用返回替换第一个调试。嘿,托马斯,谢谢你的回复。如果我用Module.publicMethod或Module.publicMethod替换Module.someFunction,它会给我一个错误。是否有任何原因使我不能在外部引用publicMethod当代码执行时,模块对象会获得对publicMethod对象的引用,因为您是从自开票函数返回它的。所以,模块只能访问publicMethod对象的属性,对于您的示例来说,它只是一个函数。您可以通过搜索javascript模块模式找到更多信息。这里有一些例子-
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;
})();
var sample = Module;
console.log(sample.someFunction())