Tôi đã dành vài giờ cuối cùng để cố gắng tìm giải pháp cho vấn đề của mình nhưng dường như là vô vọng.
Về cơ bản tôi cần biết cách gọi một phương thức cha từ một lớp con. Tất cả những thứ mà tôi đã thử cho đến nay đều không hoạt động hoặc viết quá nhiều phương thức cha.
Tôi đang sử dụng đoạn mã sau để thiết lập OOP trong javascript:
// SET UP OOP
// surrogate constructor (empty function)
function surrogateCtor() {}
function extend(base, sub) {
// copy the prototype from the base to setup inheritance
surrogateCtor.prototype = base.prototype;
sub.prototype = new surrogateCtor();
sub.prototype.constructor = sub;
}
// parent class
function ParentObject(name) {
this.name = name;
}
// parent's methods
ParentObject.prototype = {
myMethod: function(arg) {
this.name = arg;
}
}
// child
function ChildObject(name) {
// call the parent's constructor
ParentObject.call(this, name);
this.myMethod = function(arg) {
// HOW DO I CALL THE PARENT METHOD HERE?
// do stuff
}
}
// setup the prototype chain
extend(ParentObject, ChildObject);
Tôi cần gọi phương thức của cha mẹ trước và sau đó thêm một số nội dung khác vào lớp con.
Trong hầu hết các ngôn ngữ OOP sẽ đơn giản như cách gọi parent.myMethod()
Nhưng tôi thực sự không thể nắm bắt được cách nó được thực hiện trong javascript.
Bất kỳ trợ giúp được nhiều đánh giá cao, cảm ơn bạn!
ParentClass.prototype.myMethod.apply() or
ParentClass.prototype.myMethod.call () `, giống như bạn làm với hàm tạo của mình.