Tôi biết có rất nhiều câu hỏi tương tự là rất nhiều câu trả lời tuyệt vời cho điều này. Tôi đã cố gắng để xem xét các phương pháp kế thừa cổ điển, hoặc những phương pháp đóng cửa vv. Bằng cách nào đó tôi cho rằng họ là nhiều hơn hoặc ít hơn "hack" phương pháp với tôi, vì nó không thực sự những gì javascript được thiết kế để làm. (Chào mừng ai cũng sửa tôi nếu tôi sai). OK, miễn là nó hoạt động, tôi hài lòng với mô hình thừa kế cổ điển như:thừa kế javascript
PARENTClass = function (basevar) { do something here; };
PARENTClass.prototype = { a: b, c: d}; // prototype is auto gen
// Inheritance goes here
CHILDClass = function (childvar) { do something; };
CHILDClass.prototype = new PARENTClass(*1); // Actual inheritance to the prototype statement
// Instance
CHILDInstance = new CHILDClass(whatever);
Trên đây là bằng cách nào đó, sự hiểu biết của tôi thừa kế của JS. Nhưng một kịch bản mà tôi không biết cách triển khai, đó là điều gì sẽ xảy ra nếu tôi muốn thực hiện khởi tạo đối tượng DURING (ví dụ, bên trong hàm tạo), và đối tượng mới có thể được sử dụng ngay lập tức .... là quá rõ ràng, vì vậy hãy để tôi sử dụng C# psuedo sau đây để giải thích những gì tôi muốn làm: (. như init phần UI)
class PARENT {
public PARENT (basevar) { ... }
}
class CHILD : PARENT {
public CHILD (basevar) : PARENT (basevar) // constructor of child, and call parent constructor during construct.
{ ... }
}
Đối với một số lý do, đặt chúng trong constructor dường như là cách tốt nhất để làm. Bất cứ ai cũng có ý tưởng về làm thế nào tôi có thể làm điều đó.
PS: trong * 1, tôi không biết nên đặt gì ở đó. PS2: Tình huống trên tôi DID tìm thấy thư viện jquery.inherit có thể làm, tôi chỉ tự hỏi nếu không sử dụng thư viện có thể đạt được nó. PS3: Hoặc sự hiểu biết của tôi là sai. Vì javascript không có ý định bắt chước OOP (đó là lý do tại sao tôi gọi nó là hack), logic "CORRECT" là gì để thực hiện điều này.
Kiểm tra này ra: http://stackoverflow.com/questions/7486825/javascript-inheritance/12816953#12816953 –
Sử dụng Object.create() để kế thừa nguyên mẫu từ lớp cơ sở. Bằng cách đó thay đổi thành lớp cơ sở gợn xuống lớp con nhưng không phải là cách khác xung quanh. Các chi tiết khác trên blog của tôi: http://ncombo.wordpress.com/2013/07/11/javascript-inheritance-done-right/ – Jon