显示模式在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
。这一点很重要;)