문자열 이름을 사용하여 JavaScript 함수를 동적으로 호출
JavaScript는 이름이 문자열로만 있는 경우 함수를 동적으로 호출할 수 있는 편리한 메커니즘을 제공합니다. 이 기능은 데이터 기반 또는 반사 프로그래밍 접근 방식의 일부로 함수를 실행해야 하는 시나리오에서 특히 유용합니다.
함수 이름을 함수 포인터로 변환하려면 가장 간단한 방법은 JavaScript를 사용하는 것입니다. 창 개체. 창 개체에 액세스하면 현재 실행 컨텍스트 내에 정의된 모든 함수를 동적으로 참조할 수 있습니다.
예를 들어 현재 컨텍스트 내에 "myFunction"이라는 함수가 있는 경우 다음 구문을 사용하여 이를 호출할 수 있습니다. :
window["myFunction"](arguments);
이 접근 방식은 전역 범위 내에서 직접 정의된 함수에 적합합니다. 그러나 실행하려는 함수가 네임스페이스 내에 중첩되어 있으면 구문이 약간 더 복잡해집니다.
네임스페이스 중첩 함수는 네임스페이스를 개별 구성 요소로 분해하여 액세스할 수 있습니다. 예를 들어, "My.Namespace" 네임스페이스 내의 "functionName"이라는 함수는 다음 코드를 사용하여 호출할 수 있습니다.
window["My"]["Namespace"]["functionName"](arguments);
이 프로세스를 단순화하기 위해 재사용 가능한 간편 함수인 ExecuteFunctionByName()을 정의할 수 있습니다. :
function executeFunctionByName(functionName, context /*, args */) { var args = Array.prototype.slice.call(arguments, 2); var namespaces = functionName.split("."); var func = namespaces.pop(); for (var i = 0; i < namespaces.length; i++) { context = context[namespaces[i]]; } return context[func].apply(context, args); }
executeFunctionByName() 함수는 세 가지를 사용합니다. 매개변수:
executeFunctionByName() 함수를 다음과 같이 호출할 수 있습니다.
executeFunctionByName("My.Namespace.functionName", window, arguments);
이 접근 방식은 JavaScript에서 함수를 동적으로 실행할 수 있는 유연하고 편리한 방법을 제공합니다. 범위 또는 네임스페이스를 지정합니다.
위 내용은 문자열 이름을 사용하여 JavaScript 함수를 동적으로 호출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!