重写 JavaScript 中的函数

Kailash Vaviya 2023年10月12日
  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
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