重写 JavaScript 中的函数

Kailash Vaviya 2023年1月30日 2022年5月10日
  1. 重写 JavaScript 中的自定义函数
  2. 重写 JavaScript 中的内置函数
  3. 在 JavaScript 中尝试重载函数
  4. 在继承中使用 super 关键字返回上一个函数
重写 JavaScript 中的函数

在本教程文章中,我们将介绍如何在 JavaScript 中重写函数。我们还将介绍当我们重载函数或将其与继承一起使用时 JavaScript 解释器的行为方式。

JavaScript 不支持重载。但它允许重写函数。在声明两个具有相同名称和参数的函数的情况下,JavaScript 在解释时会考虑最新的函数。这是在 JavaScript 中重写函数的方法。

重写 JavaScript 中的自定义函数

我们将创建两个具有相同名称 Emp_name 的自定义函数,以使用不同的 alert() 消息显示员工姓名。

没有重写功能的示例代码:

function Emp_name(e){
    return "Hello, " + e + "! This is the default function's message.";
}
alert(Emp_name("Harry"));

具有重写功能的示例代码:

function Emp_name(e){
    return "Hello, " + e + "! This is the default function's message.";
}
alert(Emp_name("Harry"));

function Emp_name(e){
    return "Hello, " + e + "! This is overriden function's message.";
}
alert(Emp_name("Harry"));

重写 JavaScript 中的内置函数

JavaScript 还允许以相同的方式重写内置函数。当我们更改与预定义函数同名的函数的代码块时,它会重写默认函数并将其代码更改为新函数。我们将使用 Date() 函数并重写它。默认情况下,Date() 函数显示日期、日期和本地时间。我们将重写它以显示 alert() 消息。

示例代码:

var d = new Date();
document.write(d);

function Date(){
    return "This is the overriden function.";
}
alert(Date());

在 JavaScript 中尝试重载函数

JavaScript 不允许重载函数。相反,它将重写该函数。我们将创建两个名为 sum 的函数来添加不同数量的参数。

function sum(i, j, k){
    return i+j+k;
}

function sum(i, j){
    return i+j;
}

alert("Sum of i+j+k is: " + sum(4, 5, 8));
alert("Sum of i+j is: " + sum(4, 5));

输出将仅显示两个函数的前两个参数的添加。这是因为不允许函数重载。因此,解释器将考虑最新的函数和它定义的参数。所有附加参数都将被忽略。

在继承中使用 super 关键字返回上一个函数

一旦我们重写它,恢复前一个函数的唯一方法是使用 super 关键字。我们将创建两个具有相同名称和参数的函数,一个在父类中,一个在子类中。我们将使用 super 关键字来访问父类函数,即使在重写它之后也是如此。

class Parent {
    msg() {
        document.write("This is parent class msg.<br>");
    }
}
class Child extends Parent {
    msg() {
        super.msg();
		    document.write("This is child class msg.");
    }
}
let p = new Parent();
let c = new Child();
p.msg();
c.msg();
Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

相关文章 - JavaScript Function