Ich schrieb eine Funktion namens search
, die ich genannt zu werden, zu erwarten, wenn der Link angeklickt wurde, wie der Code-Schnipsel zeigt:Warum sagt dieser Anker "Suche ist keine Funktion"?
<body>
<script type="text/javascript">
function search() {
console.log('Searching');
}
</script>
<a href="#" onclick="search();">Click here</a>
</body>
Allerdings ist der Code nicht funktioniert, wie ich erwartet hatte, was Uncaught TypeError: search is not a function
Fehler verursacht (in Chrome), wenn auf den Link geklickt wird.
habe ich versucht, die Protokollierung search
zu sehen, warum der Fehler ausgelöst wurde:
<a href="#" onclick="console.log(search)">Click here</a>
Diese Zeit, die Konsole eine leere Zeichenfolge jedes Mal, wenn der Link angeklickt wird protokolliert. Was mich verwirrt ist, dass search
tatsächlich woanders als eine leere Zeichenfolge definiert ist, was meine Funktionsdefinition nutzlos macht.
Also ich möchte wissen, was passiert, wenn ein Klick-Ereignis ausgelöst wird, und wann ist search
hier definiert?
_ „Was mir ein Rätsel ist, dass‚Suche‘tatsächlich woanders als eine leere Zeichenfolge definiert wird“ _ Ändern entweder Funktion Der Name oder die Variable, die auf einen anderen Bezeichner verweisen, sollten das Problem lösen, ja? – guest271314
Inline-Funktion überholt. Also 'onclick' bezog sich auf die _irgendwo_ leere Zeichenfolge' search', die in der Konsolenausgabe resultierte. Die 'search'-Variable muss nach der' function search() 'definiert worden sein, daher wird sie als Methode aufgerufen, die zu einem Fehler führt. – Searching
* "Was mich verwirrt ist, dass" Suche "eigentlich woanders als leere Zeichenfolge definiert ist" * - Willst du sagen, dass du irgendwo anderen Code hast, der 'such' explizit als leere Zeichenfolge definiert oder das Programm sich verhält? Wenn es irgendwo anders definiert ist, obwohl es nicht in Ihrem Code ist und Sie sich fragen, wo diese andere Definition sein könnte? – nnnnnn