먼저 함수 정의에 대해 이야기해 보겠습니다.
view sourceprint?function Hanshu()
{
//함수 본문...
}
이런 식으로 Hanshu라는 함수를 정의했으니 이제 이 함수를 호출해 보겠습니다. 실제로 함수를 호출하려면 함수 이름과 괄호만 사용하면 됩니다. 즉,
Hanshu()
이런 식으로 이 함수를 호출합니다.
버튼을 사용하여 이 함수를 호출해 보겠습니다. 버튼의 클릭 이벤트를 이 메서드로 지정합니다
이제 이 메서드에 또 다른 메서드를 작성합니다
이 메서드에서는 본문의 클릭 이벤트를 새로운 메서드인 익명 메서드로 지정합니다. 그런 다음 body
view sourceprint?function Hanshu()
{
document.body.onclick = function()
{
경고( 본문 클릭);
}
이제 호출해 보겠습니다
그러나 이것은 본문을 클릭할 때마다 클릭 본문이 나타나는 것을 달성할 수 없습니다.
본문이 이 익명 메소드에 액세스할 때, 이 메서드를 찾을 수 없습니다
이렇게 테스트할 수 있습니다
view sourceprint?function AddClick()
{
// 클릭을 인식할 수 없습니다. 본문의 이벤트. 본문이 함수 본문의 함수에 액세스할 수 없으므로 새 메서드를 제공합니다.
/*
document.body.onclick = new function()
{
경고(본문 클릭);
*/
// 달성 가능
document.body .onclick = BtnAn;
// 함수 내에서 메서드를 가리키면 오류가 발생합니다: NeiHanshu가 정의되지 않았습니다
// document.body.onclick = NeiHanshu;
경고(본문 클릭)
// function NeiHanshu()
// {
// 경고(함수 안의 함수가 호출됨)
// }
// NeiHanshu()
}
따라서 결과는 다음과 같습니다. 외부 함수만 호출할 수 있고 함수 내부 함수는 호출할 수 없습니다. 이것도 액세스 수준 문제입니다