重写 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 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