我在 javascript 中有多个可食用的课程,例如:食物、饮料、零食。每个此类都需要一组不同的参数。我有另一个工厂类,它创建一个发送给它的可食用项目的实例。
我无法弄清楚我们如何使用该工厂动态选择可食用项目并传递参数(以数组形式)?
我想出了两个解决方案 - 解决方案 1:
var factory = function(eatable, argumentList){
var obj = new eatable(argumentList);
return obj
};
这是一个问题,因为 argumentList 是一个数组。
解决方案 2
var factory = function(eatable, argumentList){
var obj = eatable.apply({}, argumentList);
return obj
};
这并没有真正创建可食用类型的对象。
我真正想要的效果 说我能够将argumentList转换为js参数类型对象然后-
var obj = new eatable(argumentList.toArguments());
obj instanceOf eatable; // should return true
请帮忙!