> 웹 프론트엔드 > JS 튜토리얼 > javascript_javascript 스킬의 수신자와 호출자의 사용 및 적용 시나리오

javascript_javascript 스킬의 수신자와 호출자의 사용 및 적용 시나리오

WBOY
풀어 주다: 2016-05-16 18:14:22
원래의
942명이 탐색했습니다.

caller :
functionName.caller는 호출자를 반환합니다.

아래 함수를 보시면 VS에 복사해서 실행하시면 됩니다

코드를 복사하세요 코드는 다음과 같습니다:

function caller() {
if (caller.caller) {
alert(caller.caller.toString())
} else {
alert("직접 실행");
}
}
function handlerCaller() {
caller()
}
handleCaller()
caller() ;


첫 번째 경고는 호출자 함수를 호출하는 호출자 handlerCaller를 팝업하고 두 번째 경고는 다른 함수 본문에서 호출되지 않으므로 호출자는 null입니다. 그리고 Alert(" function is running Direct Execution");


callee:


지정된 Function 객체의 본문인 실행 중인 Function 객체를 반환합니다.
callee는 인수입니다. 익명

함수의 재귀를 용이하게 하거나 함수의 캡슐화를 보장하는 함수 객체 자체에 대한 참조를 나타내는 속성 멤버입니다. 다음 코드는 먼저 callee의 사용법을 설명합니다. 예제 코드는 인터넷에서 가져온 것입니다
코드 복사 코드는 다음과 같습니다. :

function calleeLengthDemo(arg1, arg2) {
alert(arguments.callee.toString())
if (arguments.length ==args.callee.length) {
window.alert("매개변수와 실제 매개변수 길이가 올바른지 확인하세요!");
return;
} else {
alert("실제 매개변수 길이: "args.length); 🎜>alert("정식 매개변수 길이: "args.callee.length);
}
}
calleeLengthDemo(1)

첫 번째 메시지 상자에 calleeLengthDemo가 표시됩니다. 이는 호출 수신자가 함수 개체 자체에 대한 참조임을 보여줍니다. 피호출자의 또 다른 유용한 응용 프로그램은 실제 매개변수가 행 매개변수와 일치하는지 여부를 확인하는 것입니다. 위 코드의 첫 번째 메시지 박스가 뜨게 되는데, 실제 매개변수 길이는 1이고, 함수 자체의 매개변수 길이인 형식 매개변수는 2입니다.



응용 시나리오:
피호출자 애플리케이션 시나리오는 일반적으로 익명 함수에 사용됩니다.
인터넷에서 발췌한 다음 코드를 살펴보세요

코드 복사 코드는 다음과 같습니다.
var fn=function(n){
if(n>0) return n fn(n-1)
return 0;
}
alert(fn(10) )

함수 자체에 대한 참조가 포함되어 있습니다. 함수 이름은 단지 변수 이름일 뿐입니다.
호출 자체를 잘 반영할 수 없는 전역 변수를 호출하는 경우, 이때는 callee를 사용하는 것이 더 나은 방법이 됩니다.

코드 복사 코드는 다음과 같습니다.
var fn=(function(n){
if(n>0) return nargs.callee(n-1);
return 0;
})(10);
alert( fn)

이렇게 하면 코드가 더 간결해집니다. 이는 또한 전역 변수의 오염을 방지합니다.

호출자의 적용 시나리오는 주로 함수 자체가 어떤 함수를 호출하는지 확인하는 데 사용됩니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿