2017-05-07 6 views
1

Bitte erklären, warum echten Code und Code in den Kommentaren

warum folgenden Codes für "document.getElementById (id) .onclick = [..]" zeigt gleiche Ergebnisse

<p>Click button to display date</p> 
 
<button type="button" id="button">Click</button> 
 
<p id="paragraph"></p> 
 

 
<script> 
 
function display() { 
 
var d = new Date(); 
 
document.getElementById("paragraph").innerHTML=d; 
 
} 
 
document.getElementById("button").onclick=display; 
 
/* Why does above line shows same results shown by:- 
 
document.getElementById("button").onclick=function() { display(); }; 
 
*/ 
 
</script>

exakt die gleichen Ergebnisse zeigen

Antwort

2

In einem Fall, wenn Sie auf die Schaltfläche klicken, rufen Sie display. Wenn Sie auf die Schaltfläche klicken, rufen Sie eine Funktion auf, die nichts anderes tut als display aufrufen.

Die display-Funktion berücksichtigt die übergebenen Argumente nicht, sodass die Tatsache, dass das Ereignisobjekt nicht weitergeleitet wird, keine Rolle spielt.

Es gibt keinen praktischen Unterschied zwischen:

display(event); 

und

function onclick() { 
    display(); 
} 
onclick(event); 
0

am MDN Werfen Sie einen Blick here

Onclick nimmt eine Funktionsreferenz. Es gibt keinen Unterschied zwischen den beiden Möglichkeiten, die Sie als "Anzeige" angeben, ist eine Funktionsreferenz, und die von Ihnen eingegebene anonyme Funktion ist ebenfalls eine Funktionsreferenz. Es ruft gerade Anzeige in ihm auf.

0

onclick möchte eine Funktionsreferenz. Wenn onclick passiert, ruft js die Funktion auf, die an dieses Element übergeben wird. Wenn Sie "display" übergeben, dann ruft display(). Wenn Sie "function() {...}" an es übergeben, dann ruft diese Funktion auf, und Sie müssen Anzeige darin aufrufen, nicht nur Verweis "display", weil js nur die Funktion aufruft, die an onclick übergeben und Sie aufrufen müssen andere Funktionen selbst.

Verwandte Themen