Tôi hiện đang làm việc trên một dự án mà cấu trúc thừa kế sau đây được sử dụng:Thừa kế cổ điển và Object Pooling
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;
Bây giờ, tôi đang cố gắng thêm một số đối tượng tổng hợp để phương trình. Các mô hình Tôi hiện đang sử dụng tác phẩm một cái gì đó tương tự (giả):
Type.new = function(){
if object available in pool
reset popped pool object
return pool object
else
return new Type()
}
var a = Type.new();
Tất nhiên, vấn đề với việc sử dụng hai mô hình này là các cuộc gọi constructor trên kiểu phụ sẽ không rút ra từ hồ bơi Loại của. Có cách nào xung quanh điều này mà không cần chuyển sang cấu trúc nhà máy? I E. là có một cách, trong một constructor, để làm một cái gì đó dọc theo dòng:
var SubType = function(){
build on top of instanceReturnedFromFunction()
};
Biết nó không phải luôn luôn nhất quán trên các bối cảnh, tôi muốn cũng muốn duy trì cấu trúc thừa kế để instanceof vv sẽ vẫn làm việc :
"Cấu trúc nhà máy" là gì và tại sao bạn muốn tránh điều đó? – Bergi
Theo cấu trúc nhà máy, tôi có nghĩa là tái cấu trúc từ các nhà xây dựng/mới đến một cái gì đó dọc theo các dòng của 'function Type (a) {return {a: a}}'. Về lý do tại sao: nó sẽ liên quan đến một số lượng tái cấu trúc, và sẽ loại trừ việc sử dụng một số nhà khai thác sẵn có (ví dụ, vv) – Nodehead
Ah, tôi hiểu. Tôi nghĩ bạn có nghĩa là nhà máy 'Type.new'… – Bergi