대부분의 사이트에서는 Function.arguments의 속성 인 "callee"가 더 이상 사용되지 않습니다. 그러나 일부 사이트는 더 나아가 Functions.argument 전체가 더 이상 사용되지 않는다고 말합니다. http://aptana.com/reference/api/Arguments.html 전체 루틴이 물에서 죽은 경우에만 왜 피 호출자를 언급해야합니까? 난 단지 "인수"발견은 매우 유용 예컨대을 보인다 http://hungred.com/how-to/secret-arguments-array-javascript/Javascript : 인수 배열이 사용되지 않습니다.
28
A
답변
44
Function.arguments
는이되지 수 있지만 함수 내에서 사용할 수 바닐라 arguments
객체에 찬성되지 않는 것. (예 : x = theFunc.arguments[i];
대신 x = arguments[i];
을 사용)
수신 된 서수 인수에 액세스하기위한 바람직한 방법입니다.
1
callee는 더 이상 사용되지 않지만 인수는 많은 응용 프로그램에서 사용됩니다. 인수가 사용되지 않는지 모르겠습니다. 함수 (params) 내에 정의되지 않은 경우에도 함수의 모든 매개 변수를 가져올 수 있습니다.
대부분 jQuery 플러그인을 개발할 때 사용했습니다. 같은 뭔가 :
$.fn.tooltip = function(method) {
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || ! method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.tooltip');
}
};
당신이 유일한 방법은 매개 변수로 전달됩니다,하지만 첫 번째 내에서 인수가 첫 번째 값 이후에 분할되어있는 경우에서 볼 수 있듯이. 이 방법으로 함수 이름과이 함수가 사용하는 모든 매개 변수를 전달할 수 있습니다.
1
아니오, 인수 배열이 사양의 최신 5.1 버전에서 사용되지되지 않았습니다 (60 페이지 참조). 그러나 caller
객체는 코드가 엄격 모드에 있지 않은 경우에만 사용할 수 있습니다.
6
Afaik arguments
은 기능의 속성으로 이 아닙니다. this MDN-link 또는 this one
아, 설명해주세요! 많은 감사합니다. –
이것은 의미가 있습니다. Javascript가 멀티 스레딩을 원할 경우 전역 상태 저장 객체가 죽습니다. –
'Function.arguments'는 왜 사용되지 않습니다? 이 함수를 사용하면 중첩 함수 내부에있는 부모 함수의 인수에 직접 액세스 할 수 있습니다. 이것은'arguments' 객체로 할 수없는 것입니다. – Taurus