我目前工作的地方使用了下面的继承结构工程:经典的继承和对象池
var Type = function(a){
this.a = a;
};
var SubType = function(a){
Type.call(this, a);
};
SubType.prototype = Object.create(Type.prototype);
SubType.prototype.constructor = SubType;
现在,我想补充一些对象池方程。我目前使用的作品类似的信息(伪)模式:
Type.new = function(){
if object available in pool
reset popped pool object
return pool object
else
return new Type()
}
var a = Type.new();
当然,使用这些两种模式的问题在于构造函数调用的子类型从类型的池不会画画。有没有办法解决这个问题,而没有转移到工厂结构?即有没有办法,在一个构造函数,做线沿线的东西:
var SubType = function(){
build on top of instanceReturnedFromFunction()
};
知道它不能跨情境总是一致的,我也想保留继承结构,这样的instanceof等仍然可以工作:
什么是“工厂结构”,为什么要避免这种情况? – Bergi
通过工厂结构,我的意思是从构造函数/ new重构到'function Type(a){return {a:a}}'的行。至于为什么:这将涉及一定数量的重构,并排除使用一些内置的运算符(instanceof等) – Nodehead
啊,我明白了。我以为你的意思是'Type.new'工厂... – Bergi