Nach der MDN ist clear() eine Methode des Document-Objekts, die man durch Schreiben document.clear()
aufrufen kann. Aber da diese Methode veraltet ist, sollte man sie überhaupt nicht nennen. Tatsächlich macht die Methode in HTML5 nichts (siehe HTML5 spec).
Also, bis diese Methode tatsächlich aus dem Document-Objekt entfernt wird, könnte man schließen, dass ein Potential Konflikt existiert eine benutzerdefinierte Funktion mit dem gleichen Namen wie die Methode des Dokuments. Das heißt, läuft der folgende Code nur gut mit Google Chrome (Version 49.0.2623.112 m):
var d = document;
d.g = d.getElementById;
function clear()
{
d.g("test").innerHTML = "";
}
var test = d.g("test");
test.onmouseover=clear;
demo Siehe
Es ist unwahrscheinlich, dass es einen Konflikt zwischen klar ist() und document.clear() . Ich schrieb eine benutzerdefinierte Funktion, die den gleichen Namen wie eine andere Dokumentmethode verwendet und der Code lief einwandfrei; siehe here.
Offenbar, wenn das onclick Ereignisattribut die benutzerdefinierte Funktion "clear()" gegeben wird, gibt es eine Art von Verwirrung mit clear() verbunden mit document.clear()
; siehe here und lesen Sie die ausgezeichnete Erklärung in der offiziellen Antwort. Kurz gesagt, das Problem läuft auf "... das Dokument-Objekt ist in der Scope-Kette vor dem Window-Objekt (...)" (siehe JavaScript: The Definitive Guide).
Wenn aus irgendeinem Grund Sie bestimmt für den Code, um hier zu arbeiten, wie Sie den richtigen Kontext spezifizieren:
HTML:
<div id="test">a test to see if this will clear</div>
<button id="but" onclick="window.clear()">Clear</button>
Also, die benutzerdefinierte Funktion wird tatsächlich ein Verfahren zur Herstellung das Window-Objekt, neben den eingebauten Fenstern wie window.open(), so dass der Code ausgeführt werden kann; siehe here.
Hinweis, der beste Weg, um eine Aktion haben auftritt, wenn ein Klick-Ereignis ist auftritt, diese Zeile in Ihrem JavaScript-Code eine Schaltfläche mit der ID „sondern“ gegeben setzen:
but.addEventListener('click',clear);
demo See.
Mögliches Duplikat von [Underscore-Präfix für Eigenschaften- und Methodennamen in JavaScript] (https://stackoverflow.com/questions/4484424/underscore-prefix-for-property-and-method-names-in-javascript) – Chris
I Think 'clear' ist eine eingebaute Funktion. Daher versucht Ihr Browser, die Basisfunktion aufzurufen, und nicht die, die Sie zuvor definiert haben. – Abrikot
können Sie ein Arbeitsmodell bereitstellen –