高级原型函数
High level prototype functions
我正在尝试在 nodejs 中创建一个包装器,它根据主包装器的输入抽象出不同的功能。例如,假设我有两个不同的文件,一个名为 usa
,一个名为 uk
,它们具有相同的功能,但功能不同。我正在尝试编写一个函数,给定字符串 us
或 uk
,我得到一个可以像这样调用的包装函数:
const Wrapper = MyWrapper('uk')
const func1Output = Wrapper.func1(10)
我目前有上述工作,uk
文件只是将其中的函数定义为原型如下:
function MyWrapper () { }
MyWrapper.prototype.func1 = (input) => console.log(input)
return new MyWrapper()
这工作正常。我目前的情况是,包装器应该可以访问不同文件中的许多功能。它不仅仅是 func
以及该特定文件中的任何其他内容。这是我的文件夹结构
wrappers
- feed
-- uk
-- us
- news
-- uk
-- us
//etc
其中每个标题为 uk
/us
的文件都具有第二个代码片段中的原型函数。因此,每当我想使用 feed
模块时,我都必须像第一个代码片段中那样做。所以它是一个 per-module 原型,它不是每个字符串的高级别(即 uk/us)。
我想要做的是在我的 wrappers 文件夹中只有一个文件 index.js
,它负责为我提供一个所有模块的包装器。类似于 MyWrapper('uk').feed.func1()
这是一个很难解释的问题,但如果需要,我很乐意编辑 post 以获得更多说明。
为什么不只是 return 常规对象?
// wrapper/index.js
const wrappers = {
uk: {
func1() { /*...*/ }
},
us: {
func1() { /*...*/ }
}
};
module.exports = country => wrappers[country];
可以用作:
const wrapper = require("./wrapper/")("uk");
wrapper.func1();
我正在尝试在 nodejs 中创建一个包装器,它根据主包装器的输入抽象出不同的功能。例如,假设我有两个不同的文件,一个名为 usa
,一个名为 uk
,它们具有相同的功能,但功能不同。我正在尝试编写一个函数,给定字符串 us
或 uk
,我得到一个可以像这样调用的包装函数:
const Wrapper = MyWrapper('uk')
const func1Output = Wrapper.func1(10)
我目前有上述工作,uk
文件只是将其中的函数定义为原型如下:
function MyWrapper () { }
MyWrapper.prototype.func1 = (input) => console.log(input)
return new MyWrapper()
这工作正常。我目前的情况是,包装器应该可以访问不同文件中的许多功能。它不仅仅是 func
以及该特定文件中的任何其他内容。这是我的文件夹结构
wrappers
- feed
-- uk
-- us
- news
-- uk
-- us
//etc
其中每个标题为 uk
/us
的文件都具有第二个代码片段中的原型函数。因此,每当我想使用 feed
模块时,我都必须像第一个代码片段中那样做。所以它是一个 per-module 原型,它不是每个字符串的高级别(即 uk/us)。
我想要做的是在我的 wrappers 文件夹中只有一个文件 index.js
,它负责为我提供一个所有模块的包装器。类似于 MyWrapper('uk').feed.func1()
这是一个很难解释的问题,但如果需要,我很乐意编辑 post 以获得更多说明。
为什么不只是 return 常规对象?
// wrapper/index.js
const wrappers = {
uk: {
func1() { /*...*/ }
},
us: {
func1() { /*...*/ }
}
};
module.exports = country => wrappers[country];
可以用作:
const wrapper = require("./wrapper/")("uk");
wrapper.func1();