Задан HTML-документ, и задача состоит в том, чтобы переопределить функцию, либо предопределенную функцию, либо определяемую пользователем функцию с помощью JavaScript.
Подход: Когда мы запускаем скрипт, вызывается функция Fun (). После нажатия кнопки вызывается функция GFG_Fun (), и эта функция содержит другую функцию, которая будет запущена.
Пример 1:
В этом примере функция, написанная пользователем, переопределяется.
<!DOCTYPE HTML>
<html>
<head>
<title>
How to override a JavaScript function ?
</title>
</head>
<body style = "text-align:center;">
<h1 style = "color:green;" id = "h1">
GeeksForGeeks
</h1>
<p id = "GFG_UP" style =
"font-size: 15px; font-weight: bold;">
</p>
<button onclick = "GFG_Fun()">
click here
</button>
<p id = "GFG_DOWN" style =
"color:green; font-size: 20px; font-weight: bold;">
</p>
<script>
var up = document.getElementById('GFG_UP');
up.innerHTML = "Click on the button to override"
+ " the function.";
var down = document.getElementById('GFG_DOWN');
function Fun() {
return "This is from old function";
}
down.innerHTML = Fun();
function GFG_Fun() {
var newFun = Fun;
Fun = function() {
return "This is from overridden function";
}
down.innerHTML = Fun();
}
</script>
</body>
</html>
Выход:
- Прежде чем нажать на кнопку:
- После нажатия на кнопку:
Пример 2:
В этом примере переопределяется метод parseFloat.
<!DOCTYPE HTML>
<html>
<head>
<title>
How to override a JavaScript function ?
</title>
</head>
<body style = "text-align:center;">
<h1 style = "color:green;" id = "h1">
GeeksForGeeks
</h1>
<p id = "GFG_UP" style =
"font-size: 15px; font-weight: bold;">
</p>
<button onclick = "GFG_Fun()">
click here
</button>
<p id = "GFG_DOWN" style =
"color:green; font-size: 20px; font-weight: bold;">
</p>
<script>
var up = document.getElementById('GFG_UP');
up.innerHTML = "Click on the button to override"
+ " the function.";
var down = document.getElementById('GFG_DOWN');
down.innerHTML = "Floor value of '2.345' is ";
function GFG_Fun() {
// Override
parseFloat = function(x) {
return "Floor value of '2.345' is "
+ Math.floor(x);
}
// Overriding the parseFloat function and
// use it as Math.floor
down.innerHTML = parseFloat(2.345);
}
</script>
</body>
</html>
Выход:
- Прежде чем нажать на кнопку:
- После нажатия на кнопку: