早期 버전의 JavaScript에서는 명명된 함수 표현식이 지원되지 않았습니다. 이로 인해 재귀 함수 표현식을 작성하기가 어려워졌습니다.
예를 들어 계승 함수를 고려해보세요.
명명된 함수 표현식이 없으면 이 코드는 작동하지 않습니다. Arguments.callee 속성은 해결책을 제공했습니다.
Arguments.callee의 단점[1,2,3,4,5].map(factorial);
[1,2,3,4,5].map(function(n) { return (!(n>1))? 1 : arguments.callee(n-1)*n; });
재귀 호출 중에 this의 값을 변경했습니다.
ECMAScript 3의 솔루션이 접근 방식은 인수.callee에 비해 몇 가지 장점을 제공합니다.
다른 함수와 마찬가지로 함수를 호출할 수 있습니다.
네임스페이스를 오염시키지 않습니다.
[1,2,3,4,5].map(function factorial(n) { return (!(n>1))? 1 : factorial(n-1)*n; });
위 내용은 JavaScript에서 'arguments.callee.caller'가 더 이상 사용되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!