如何在javascript中应用虚函数

在C#中,我们有关于抽象方法的概念,以及如何在 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();​

当对象是MyClass的实例时,BaseClass中的函数hello()如何从MyClass调用函数do().警报结果必须是“我是MyClass”.请帮我.谢谢.

解决方法

您可能希望首先调用“Base”构造函数
function MyClass() {
    BaseClass.call(this);
    this.talk = function() {
        alert("I'm MyClass");
    }
}

否则BaseClass.talk将覆盖MyClass.talk.

作为旁注,在javascript中使用“类”的概念相当适得其反,因为这不是这种语言的工作方式. JS使用原型继承,即从其他对象派生新对象,而不是从“类”派生.此外,JS中的每个函数都是C语义中的​​“虚拟”,因为它的this指针取决于函数调用方式,而不是函数的定义位置.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...