Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中扩展模块模式中的模块_Javascript_Design Patterns - Fatal编程技术网

在javascript中扩展模块模式中的模块

在javascript中扩展模块模式中的模块,javascript,design-patterns,Javascript,Design Patterns,我试图将模块模式与JS结合使用。但是,当我在控制台中调用HM.init()时,它会显示未定义。就像是这样。旋转木马根本不存在。为什么呢 JS: 非常感谢它打印未定义的原因是HM.init不返回任何内容(noreturn语句,因此它默认返回未定义) 您可以在调用this.carousel.init()之前添加return,如下所示: ... HM.init = function(){ return this.carousel.init(); } ... …或者您想在HM.carousel

我试图将模块模式与JS结合使用。但是,当我在控制台中调用
HM.init()
时,它会显示
未定义。就像是这样。旋转木马根本不存在。为什么呢

JS:


非常感谢

它打印
未定义
的原因是
HM.init
不返回任何内容(no
return
语句,因此它默认返回
未定义

您可以在调用
this.carousel.init()
之前添加
return
,如下所示:

...
HM.init = function(){
    return this.carousel.init();
}
...
…或者您想在
HM.carousel.init
函数中使用
console.log
,如果您想在控制台上打印“initialise HM”:

...
HM.carousel = {
    init: function(){
        return 'initialise HM';
    }
}
...

(返回值本身不是一个好的调试工具,因此使用
console.log
打印它可能更有意义)

它打印
undefined
的原因是
HM.init
不返回任何内容(no
return
语句,因此它默认返回
undefined

您可以在调用
this.carousel.init()
之前添加
return
,如下所示:

...
HM.init = function(){
    return this.carousel.init();
}
...
…或者您想在
HM.carousel.init
函数中使用
console.log
,如果您想在控制台上打印“initialise HM”:

...
HM.carousel = {
    init: function(){
        return 'initialise HM';
    }
}
...

(返回值本身不是一个好的调试工具,因此使用
console.log
打印它可能更有意义)

感谢Jonas的回复。我已经更新了代码,但仍然不起作用。查看代码。对;问题是
HM.init
不返回任何内容
返回这个.carousel.init()
内部
HM.init
应该可以工作,至少对我来说是这样。通过替换为
console.log
,我的意思是您可以将
return'initialise HM
更改为例如
console.log('initialise HM')
(假设它只是调试输出,您实际上不想返回该输出)。很抱歉让您感到困惑:请再说一遍PThanks,但是在这个项目中,这个代码是所有其他模块初始化的核心,所以为每个模块返回都有点混乱。例如,将创建旋转木马模块以及选项卡、手风琴等。。。所以为每一个返回都很奇怪,除非我不知道。因此,您可能需要
console.log
来进行调试。代码本身可以工作,但您认为它不能,因为它打印的是
未定义的
。打印未定义
的原因很简单,因为调用的函数没有返回任何内容。您返回的字符串('initialise HM')将被丢弃,因为它没有存储在任何地方。感谢Jonas的回复。我已经更新了代码,但仍然不起作用。查看代码。对;问题是
HM.init
不返回任何内容
返回这个.carousel.init()
内部
HM.init
应该可以工作,至少对我来说是这样。通过替换为
console.log
,我的意思是您可以将
return'initialise HM
更改为例如
console.log('initialise HM')
(假设它只是调试输出,您实际上不想返回该输出)。很抱歉让您感到困惑:请再说一遍PThanks,但是在这个项目中,这个代码是所有其他模块初始化的核心,所以为每个模块返回都有点混乱。例如,将创建旋转木马模块以及选项卡、手风琴等。。。所以为每一个返回都很奇怪,除非我不知道。因此,您可能需要
console.log
来进行调试。代码本身可以工作,但您认为它不能,因为它打印的是
未定义的
。打印未定义的原因很简单,因为调用的函数没有返回任何内容。您返回的字符串('initialise HM')被丢弃,因为它没有存储在任何地方。