Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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,我正在尝试实现这个模式。但它不起作用。 ShowHomePage工作正常,但ShowTitle不工作看起来您想通过将方法附加到参数而不是返回它们来显示方法。使用 (function( Pbr) { Pbr.ShowHomePage = function() { console.log("ShowHomePage called") } function privateFunc() { console.log("Showtitle");

我正在尝试实现这个模式。但它不起作用。

ShowHomePage工作正常,但ShowTitle不工作

看起来您想通过将方法附加到参数而不是返回它们来显示方法。使用

(function( Pbr) {

    Pbr.ShowHomePage = function() {
        console.log("ShowHomePage called")
    }

    function privateFunc() {
        console.log("Showtitle");
    }

    return {
        ShowTitle : privateFunc
    }

}(Pbr = Pbr || {}));


Pbr.ShowHomePage()
Pbr.ShowTitle()
如果要
返回
对象文字,则需要指定IEFE的结果,并覆盖现有的
Pbr
值。看起来像

(function(Pbr) {

    Pbr.ShowHomePage = function() {
        console.log("ShowHomePage called")
    }

    function privateFunc() {
        console.log("Showtitle");
    }
    Pbr.ShowTitle = privateFunc; // not very private, btw

}(Pbr = Pbr || {}));

看起来您希望通过将方法附加到参数而不是返回它们来显示方法。使用

(function( Pbr) {

    Pbr.ShowHomePage = function() {
        console.log("ShowHomePage called")
    }

    function privateFunc() {
        console.log("Showtitle");
    }

    return {
        ShowTitle : privateFunc
    }

}(Pbr = Pbr || {}));


Pbr.ShowHomePage()
Pbr.ShowTitle()
如果要
返回
对象文字,则需要指定IEFE的结果,并覆盖现有的
Pbr
值。看起来像

(function(Pbr) {

    Pbr.ShowHomePage = function() {
        console.log("ShowHomePage called")
    }

    function privateFunc() {
        console.log("Showtitle");
    }
    Pbr.ShowTitle = privateFunc; // not very private, btw

}(Pbr = Pbr || {}));

正如Felix在评论中所说,您需要使用返回值

将整个模块分配给
Pbr
并显示
ShowHomePage
(就像您为privatefunc所做的那样)


或者,添加
Pbr.showttitle=privatefunc并删除返回语句。

正如Felix在评论中所说,您需要使用返回值

将整个模块分配给
Pbr
并显示
ShowHomePage
(就像您为privatefunc所做的那样)


或者,添加
Pbr.showttitle=privatefunc并删除return语句。

您从未对函数的返回值执行任何操作,因此返回的对象将丢失。您可能还需要将
showttitle
分配给
Pbr
这一点很重要;)您从未对函数的返回值执行任何操作,因此您返回的对象将丢失。您可能还需要将
showttitle
分配给
Pbr
这一点很重要;)