Tôi có JavaScript này:Làm cách nào để bọc một hàm tạo?
var Type = function(name) {
this.name = name;
};
var t = new Type();
Bây giờ tôi muốn để thêm video này:
var wrap = function(cls) {
// ... wrap constructor of Type ...
this.extraField = 1;
};
Vì vậy, tôi có thể làm:
wrap(Type);
var t = new Type();
assertEquals(1, t.extraField);
[EDIT] Tôi muốn một instance property, không phải thuộc tính class (static/shared).
Mã được thực thi trong hàm trình bao sẽ hoạt động như thể tôi đã dán nó vào hàm tạo thực.
Loại Type
không được thay đổi.
Bằng những gì tôi hiểu, bạn muốn thêm thuộc tính bổ sung vào hàm tạo? để các cá thể mới có thêm thuộc tính đó? – Joseph
Có thể bạn chỉ cần thay đổi nguyên mẫu 'Type' bên trong hàm' wrap() '. Ví dụ: 'var wrap = function (cls) {cls.prototype.extraField = 1; }; '? Hoặc có thể là tốt nhất để tạo mới 'Type2' kế thừa từ' Type' với thành viên 'extraField' bổ sung? –
Bạn có thể mô tả chi tiết hơn về vấn đề của mình không? – seteh