作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
工厂类不是我正在寻找的最终产品,但它基本上是我的问题的归结。我正在寻找一个我们将调用 foo 的类,该类可以作为参数传递到另一个类 bar 到其构造函数中,这样当稍后调用 fooInstance.create() 时,它会返回 bar 的新实例。我可以很容易地弄清楚如何让 fooInstance.create(bar) 创建 bar 的实例。但这不是我需要的。我需要工厂类的每个实例来创建特定类型的对象。所以:
fooCar = new foo(Car);
fooTruck = new foo(Truck);
myCar = fooCar.create();
myTruck = fooTruck.create();
这可以通过 C# 中的泛型轻松处理。我要么遇到错误,要么最终搞砸了 foo 的原型(prototype),然后更改了 foo 的所有实例创建的类型。
最佳答案
只需从工厂返回一个常规对象,只需一个 create
方法:
function foo (Constructor) {
return {
create: function () {
return new Constructor();
}
};
}
查看 fiddle :http://jsfiddle.net/fR5Gz/1/
关于javascript - 如何在 javascript 中创建通用工厂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14392243/
我是一名优秀的程序员,十分优秀!