javascript:调用另一个工厂函数的工厂函数,该工厂函数调用另一个工厂函数
我有两个工厂函数,用于返回对象中的方法:javascript:调用另一个工厂函数的工厂函数,该工厂函数调用另一个工厂函数,javascript,factory-pattern,Javascript,Factory Pattern,我有两个工厂函数,用于返回对象中的方法: let midleware = function() { //error let _error = false; let _errorEmpty = 'Second arg must be [service/s]!'; let _errorName = 'First arg must be the name (reference) for your service/s'; //checks let _isArr = Array.i
let midleware = function() {
//error
let _error = false;
let _errorEmpty = 'Second arg must be [service/s]!';
let _errorName = 'First arg must be the name (reference) for your service/s';
//checks
let _isArr = Array.isArray('arr');
let _isFn = (typeof 'arr' == 'function');
let fnsHolder = [];
return {
setToArray: function(arr) {
if (_error) return;
fnsHolder = (_isArr) ? arr : [arr];
return fnsHolder
},
error: function(...args) {
console.log('-------------false-----------')
},
checkType: function() {
}
}
}
let mid = midleware();
let container = function(midleware) {
let _holder = new Map();
let mid = Object.assign({}, midleware); // HOW TO CALL ANOTHER FACTORY INSIDE THIS ONE
return {
set: function(name, arr) {
_holder.set(name, arr)
console.log('set is Done!')
},
get: function(name) {
return _holder.get(name)
},
size: function() {
console.log(_holder.size);
checker.error()
},
isExist: function(name) {
return _holder.has(name)
},
remove: function(name) {
_holder.delete(name)
console.log('item has been Deleted!')
},
test: function() {
mid.error()
}
}
}
let dim = container();
dim.test() //error 'undifined'
dim.set('hi', 'hello') //set is Done!
dim.isExist('hi') //true
正如你所看到的,我试图调用/调用第二个工厂中的第一个工厂,这给了我一个错误。。
那么,有没有可能在另一个函数中调用工厂函数,在另一个函数中调用另一个函数呢?
因为我只需要一个能控制所有东西的东西,其他的就像隐藏的层一样,在容器里面(只是一个空的对象。它没有
.test()
方法。如果它应该来自参数middleware
,那么您没有在let dim=container()中传递任何参数代码>所以你需要这样做。如果它应该来自其他地方,你需要这样做。