【发布时间】:2021-11-02 04:47:05
【问题描述】:
例如
const Foo = (function () {
const something = [];
const method1 = function(){
bar.addEventListener("click", method2); //how can I access this method from Foo2??
};
return {method1};
})();
const Foo2 = (function () {
const {method1} = Foo(???); //the example ive found that was remotely close
const somethingElse = 10;
const method2 = function(){
//do something
};
return {method2};
})();
在一个示例中,我发现他们使用了对象解构并将其设置为等于我想从中继承该特定函数的另一个模块。我试图实现这个,但它告诉我Foo 不是一个函数,或者我试图在没有初始化的情况下访问它。
在他们的示例中,他们在Foo 的括号中有一个变量,但是将其应用于我的项目 idk 括号中的内容,我尝试的所有内容都是错误的,甚至是空括号。此外,即使这确实有效,我也不知道在事件侦听器中的回调函数名称前面放什么。我试过bar.addEventListener("click", Foo2.method2); 和bar.addEventListener("click", Foo2.method2());
我看到这个问题以不同的方式提出了几个不同的答案,但老实说,这些解释只是超出了我的理解水平。对象解构对我来说最有意义,但它仍然不起作用,所以我不知道该怎么办。
我了解原型继承并且能够说Foo.prototype.someFunction 能够使用Foo 中的方法,但是实现此功能的“工厂函数/模块模式”等价物是什么?
不仅仅是事件,这两个模块如何相互连接?是语法错误,还是不可能?我只是想举个例子……某事。任务要求我们使用工厂函数和模块模式,我找不到任何资源,我可以找到简单的如何将常规函数转换为模块的资源,没有关于一旦你拥有多个模块后如何使用它们的资源不管什么原因。
【问题讨论】:
标签: inheritance design-patterns module iife