Как переопределить функцию JavaScript ?

Задан 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>

Выход:

  • Прежде чем нажать на кнопку:
  • После нажатия на кнопку: