나는 함수 호출시 함수의 매개 변수로로드 될 다양한 수의 인수를 전달할 수있는 방법을 알고 있습니다 (call()
). 내가 뭔가를 할 수있는 노력을 어디에 내가 반복 된 집합 객체를 통해 RaphaelJS에서 forEach
(jQuery의 each
과 유사)을 반복하는지, 자식 요소가 다른 집합인지 여부를 결정하고, 그렇지 않은 경우 변수 개수가있는 함수를 적용합니다. 모든 함수를 적용 할 수 있도록 범용으로 만들고 싶지만 함수의 arguments
속성에 액세스하지 않고도 전달하는 함수에 간단한 매개 변수 생성자가 있어야합니다.JavaScript에서 다양한 수의 인수를 사용하여 함수를 호출하십시오 (call()과 유사 함)
function recursiveFncApply(set, fnc, args) {
set.forEach(function(item) {
if (item.type == 'set') {
recurseApplyFncToSets(item, fnc, args);
} else {
fnc(item, args);
}
});
}
function translateOperation(element, operation, x, y)
// do stuff to element with operation, x, and y args without accessing
// accessing arguments property
}
recursiveFncApply(passedSet, translateOperation, [arg1, [arg2, ...]]);
은 내가 인수를 결정하는 코드로 자신을 반복 할 필요없이 여러 기능을 사용할 수 있도록이 작업을 수행 할 수 제대로 사용하기 전에 할당합니다. 어떤 종류의 기능이나 언어 유틸리티가 있는지 모르겠습니다. 필자는이 작업을 수행 할 수 없거나 recursiveFncApply에 전달 된 나머지 인수에서 함수 호출을 프로그래밍 방식으로 "생성"할 수 있습니다. JavaScript로 가능합니까?
설명 : 반복되는 함수에 가변 개수의 인수를 전달하여 재귀 함수가 작업중인 집합의 내용에 적용 할 함수에 전달할 함수에 전달하려고합니다. 그래서 recursiveFncApply 함수를 call()을 통해 실행되는 함수처럼 작동하는 인수 구조를 사용하면서 일반적으로 모든 함수로 작업 할 수 있기를 원합니다.
recursiveFncApply(passedSet, translateOperation, operation, x, y);
recursiveFncApply(passedSet, anotherFunction, singleArg);
뿐만 아니라이 방법 :
recursiveFncApply(passedSet, anotherFunction, singleArg);
function anotherFunction(element, differentArg) {
// do something with one argument
}
가 이상적으로는 다음이 방법으로 내 recursiveFncApply
을 사용할 수
translateOperation
이외에 다른 기능을 말해봐
이 방법이 비슷하다고 생각합니다. call()
wo 점에서 RKS 내가 할 수 :
anotherFunction.call(this, element, differentArg);
있습니다 .. arguments
속성을 제압 anotherFunction의 구조를 변경하거나, 객체/배열을 전달하지 않고.
의 중복 가능성 http://stackoverflow.com/questions/2141520/javascript-variable-number- of-arguments-to-function –
인수 대신에 { 'a': 'something', 'b': 'something else'}를 전달하십시오. –
어쩌면 내가 당신의 문제를 오해하지만, 인수 배열을 사용하고 ['fnc.apply'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/)를 사용하는 것을 고려해 보았습니까? 기능/적용)? – apsillers