JavaScript 中的函数重载与函数重写的区别

函数重载函数重写是面向对象编程(OOP)中的两个重要概念。函数重载允许我们创建多个具有相同名称但参数不同的函数。而函数重写则允许子类(或派生类)为已在父类(或超类)中定义的方法提供具体的实现。

接下来,我们将一起探讨以下几个主题:

目录

  • 什么是函数重载?
  • 什么是函数重写?
  • JavaScript 中函数重载与函数重写的区别

什么是函数重载?

函数重载是指创建多个具有相同名称但参数不同的函数的能力。然而,与 C++ 或 Java 等语言不同,JavaScript 并不原生支持函数重载。相反,我们可以通过一些变通方法来实现类似的效果,例如在单个函数定义内部检查参数的数量和类型。

示例: 在下面的示例中,display 函数根据其参数的类型表现出不同的行为。

function display(value) {
    if (typeof value === ‘number‘) {
        console.log("Number: " + value);
    } else if (typeof value === ‘string‘) {
        console.log("String: " + value);
    }
}

display(32);
display("Hello");

输出

Number: 32
String: Hello

什么是函数重写?

当子类(或派生类)为已在父类(或超类)中定义的方法提供具体实现时,就会发生函数重写。这使得子类能够根据自身需求定制该方法。在 JavaScript 中,函数重写允许子类为已在父类中定义的方法提供特定的实现。这使得子类能够展示继承方法的行为,且该行为可由子类本身进行操纵。

示例: INLINECODE2dd5457f 类重写了 INLINECODE058d4adf 类的 INLINECODEb29005c2 方法。当我们调用 INLINECODE156aee62 实例的 INLINECODE11f8ce0e 方法时,执行的是 INLINECODE6b00d115 类中被重写的方法。

class Parent {
    display() {
        console.log("Display method from Parent class");
    }
}

class Child extends Parent {
    display() {
        console.log("Display method from Child class");
    }
}

let obj = new Child();
obj.display();

输出

Display method from Child class
特性

函数重载

函数重写 :—

:—

:— 定义

多个具有相同名称但参数不同的函数。

子类为已在父类中定义的方法提供具体实现。 原生支持

JavaScript 中不支持原生实现,需通过变通方法来实现。

支持原生实现,使用类继承即可。 目的

允许函数处理不同类型或数量的参数。

允许子类为方法提供特定的实现。 示例用法

在同一个函数内处理不同的参数类型。

在子类中自定义或扩展方法的行为。 代码复杂度

由于需要手动检查参数,可能会增加复杂性。

更加直接,符合 OOP 原则。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43549.html
点赞
0.00 平均评分 (0% 分数) - 0