Heim >Web-Frontend >js-Tutorial >Vertieftes Verständnis der Funktionsüberladung in JavaScript_Javascript-Kenntnissen

Vertieftes Verständnis der Funktionsüberladung in JavaScript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:40:271153Durchsuche

Es gibt einen speziellen Datentyp in JavaScript: Funktionstyp. Jede Funktion in JavaScript ist eine Instanz des Funktionstyps. Da Funktionen Objekte sind, ist der Funktionsname tatsächlich ein Zeiger auf das Funktionsobjekt und nicht an eine Funktion gebunden.

<pre name="code" class="html">function sum(num1,num2) 
{ 
return num1 +num2; 
} 

alert(sum(10,10)); //20 
var other = sum; 
alert(other(10,10)); //20 
sum = null; 
alert(other(10,10)); //20

Die Verwendung des Funktionsnamens als Zeiger auf die Funktion hilft zu verstehen, warum es in ECMAScript kein Konzept der Funktionsüberladung gibt

function sum(num1) 
{ 
return num1 +100; 
} 
function sum(num1) 
{ 
return num1 +200; 
} 
alert(sum(200)); //400

Obwohl zwei Funktionen mit demselben Namen deklariert sind, überschreibt die letztere Funktion die vorherige Funktion. Das Obige entspricht dem folgenden Code

function sum(num1) 
{ 
return num1 +100; 
} 
sum = function(num1) 
{ 
return num1 +200; 
} 
alert(sum(200)); //400

Beim Erstellen der zweiten Funktion wird die referenzierte erste Funktionsvariablensumme tatsächlich überschrieben

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn