Trong C#, chúng tôi có khái niệm về phương pháp trừu tượng và cách áp dụng phương thức này trong Javascript. Ví dụ: Tôi có ví dụ:Cách áp dụng chức năng ảo trong javascript
function BaseClass() {
this.hello = function() {
this.talk();
}
this.talk = function() {
alert("I'm BaseClass");
}
};
function MyClass() {
this.talk = function() {
alert("I'm MyClass");
}
BaseClass.call(this);
};
MyClass.prototype = new BaseClass();
var a = new MyClass();
a.hello();
Cách hàm hello() trong BaseClass gọi hàm do() từ MyClass khi đối tượng là đối tượng của MyClass. Kết quả cảnh báo phải là "Tôi là MyClass". Làm ơn giúp tôi. Cảm ơn.
Tôi nghĩ rằng bạn có nghĩa là 'virtual' /' override', không phải 'abstract'. – HackedByChinese
Có, hàm của cơ sở phải là hàm ảo để lớp kế thừa có thể ghi đè lên nó. –
Tôi không chắc mình hiểu. Chỉ cần loại bỏ 'BaseClass.call (this);' dòng và nó hoạt động, vì 'this.talk = ...' ghi đè phương thức cơ sở. Hoặc bạn có thể bắt đầu 'MyClass' với' BaseClass.call (...) '(lúc đầu, không phải là kết thúc). Nhưng nếu bạn đang sử dụng 'call' thì không cần xác định nguyên mẫu. – freakish