Lassen Sie uns zunächst über die Definition der Funktion sprechen:
view sourceprint?function Hanshu()
{
//Function body...
}
Auf diese Weise haben wir eine Funktion namens Hanshu definiert, nun versuchen wir, diese Funktion aufzurufen. Tatsächlich ist es sehr einfach, eine Funktion aufzurufen, indem man einfach den Funktionsnamen plus Klammern verwendet:
Hanshu(
) Auf diese Weise rufen wir diese Funktion auf.
Rufen wir diese Funktion mit einer Schaltfläche auf: Richten Sie das Klickereignis der Schaltfläche auf diese Methode
Jetzt schreibe ich eine weitere Methode in dieser Methode
In dieser Methode verweisen wir das Klickereignis des Körpers auf eine neue Methode, die anonyme Methode. Klicken Sie dann auf body
view sourceprint?function Hanshu()
{
document.body.onclick = function()
{
warning ( click body);
};
}
Jetzt versuchen wir es zu nennen
Dadurch kann jedoch nicht erreicht werden, dass jedes Mal, wenn auf den Körper geklickt wird, ein Klick auf den Körper erscheint
denn wenn der Körper auf diese anonyme Methode zugreift, Diese Methode kann nicht gefunden werden
Wir können sie so testen
view sourceprint?function AddClick()
{
// Dies kann den Klick nicht realisieren Ereignis des Körpers. Geben Sie eine neue Methode an, da der Körper nicht auf die Funktion im Funktionskörper zugreifen kann
/*
document.body.onclick = new function()
{
Alert(click body);
};
*/
// Dies kann erreicht werden
document.body .onclick = BtnAn;
// Wenn Sie die Methode auf eine Methode innerhalb der Funktion verweisen, tritt ein Fehler auf: NeiHanshu ist undefiniert
// document.body.onclick = NeiHanshu;
Alert(click body);
// function NeiHanshu()
// {
// alarm(die Funktion in der Funktion heißt
// }
// NeiHanshu();
}
Das Ergebnis ist also: Wir können nur externe Funktionen aufrufen, aber keine Funktionen innerhalb von Funktionen. Dies ist auch ein Problem mit der Zugriffsebene