gpt4 book ai didi

javascript - 如何在模块化设计模式中嵌套函数?

转载 作者:行者123 更新时间:2023-11-30 11:52:56 25 4
gpt4 key购买 nike

我正在尝试使用 this article 来理解模块设计模式.

但是我还是有些不明白。我想知道的主要事情是如何像以前一样“嵌套”函数。这是我用我的旧“方法”实现这一目标所做的(以及我正在努力实现的目标):

var ContentEditor = ContentEditor || {};
ContentEditor.events = {
sayHi: function(){
alert("Hi!");
}
}
ContentEditor.events.sayHi();

现在,使用我的旧“方法”非常简单,但正如我所说,我正在尝试理解模块设计模式。

这是我目前所拥有的:

var ContentEditor = (function(){
// the nested "library"
var events = {
sayHi: function(){
alert();
}
}
})();
ContentEditor.events.sayHi(); // this returns "Cannot read property 'events' of undefined".

所以出于某种原因没有返回事件对象文字?于是我想,我需要归还它。所以我像这样更新了代码:

var ContentEditor = (function(){
// Notice the return here
return {
var events = {
sayHi: function(){
alert();
}
}
}
})();
ContentEditor.events.sayHi(); // This returns "Unexpected identifier".

我不知道如何解决这个问题,任何帮助将不胜感激!谢谢!

最佳答案

您可以像这样修改您的代码:

var ContentEditor = (function() {

// Create the events object here
var events = {

// Our first private function
sayHi: function() {
alert('Hi!');
},

// One more private function inside the events object
sayBye: function() {
alert('Bye!');
}
}

// Create some public functions here
// and pass the private functions references to it
return {
sayHi: events.sayHi,
sayBye: events.sayBye
}
})();

// Call the public functions here
ContentEditor.sayHi();
ContentEditor.sayBye();

关于javascript - 如何在模块化设计模式中嵌套函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38943295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com