在javascript中使用模块模式进行未定义
在javascript中使用模块模式进行未定义,javascript,Javascript,var模块=(函数(){ var privateMethod=函数(){ log(“私有方法”); } 返回{ publicmethod1:function(){console.log('first');}, publicmethod2:function(){console.log('second');} } })(); log(Module.publicmethod1()); log(Module.publicmethod2())替换 console.log(Module.publicmeth
var模块=(函数(){
var privateMethod=函数(){
log(“私有方法”);
}
返回{
publicmethod1:function(){console.log('first');},
publicmethod2:function(){console.log('second');}
}
})();
log(Module.publicmethod1());
log(Module.publicmethod2())代码>替换
console.log(Module.publicmethod1());
console.log(Module.publicmethod2());
与
您的公共方法已具有console.log()
扩展
语句Module.publicmethod1()
没有返回任何内容(这意味着它返回undefined
,因此当您将该语句放入console.log()
调用中时,您正在打印undefined
方法的结果
由于您还在方法中调用console.log()
,因此不需要打印方法的结果(因为它们不会返回任何内容)。替换
console.log(Module.publicmethod1());
console.log(Module.publicmethod2());
与
您的公共方法已具有console.log()
扩展
语句Module.publicmethod1()
没有返回任何内容(这意味着它返回undefined
,因此当您将该语句放入console.log()
调用中时,您正在打印undefined
方法的结果
由于您还在方法中调用console.log()
,因此不需要打印方法的结果(因为它们不会返回任何内容)。当您运行publicmethod1()
和publicmethod2()时
,它们已经记录了第一次
和第二次
,但它们不返回任何内容。因此最后一次控制台.log
调用将记录被调用方法的返回值,即未定义
。只需调用
Module.publicmethod1();
Module.publicmethod2();
然后运行publicmethod1()
和publicmethod2()时,不会得到任何未定义的
,它们已经记录了第一次
和第二次
,但它们不返回任何内容。因此最后一次控制台.log
调用将记录被调用方法的返回值,即未定义
。只需调用
Module.publicmethod1();
Module.publicmethod2();
然后你就不会得到任何未定义的