이름으로 JavaScript 함수 호출
JavaScript에서는 함수 이름을 문자열로 사용하여 함수에 액세스하는 것이 동적 코드 실행을 위한 편리한 방법일 수 있습니다. . 그러나 이를 달성하려면 잠재적인 보안 취약성을 피하기 위한 신중한 접근 방식이 필요합니다.
해결책:
꼭 필요한 경우가 아니면 피해야 하는 안전하지 않은 평가 기능을 사용하는 대신, 더 안전한 대안은 다음 기술을 사용하는 것입니다.
1. 전역 함수 호출:
문자열 이름으로 전역 함수를 호출하려면 다음 구문을 사용합니다.
window["functionName"](arguments);
이 방법은 전역 범위에서 선언된 함수에 작동합니다.
2. 네임스페이스 함수 호출(복잡한 형식):
네임스페이스에 속하는 함수를 호출하려면 다음 복합 구문을 사용합니다.
window["My"]["Namespace"]["functionName"](arguments);
이 구문을 사용하면 함수에 액세스할 수 있습니다. 중첩된 네임스페이스를 통해
3. 네임스페이스 함수 호출(편의 함수):
간소화된 네임스페이스 함수 호출의 경우 다음 편의 함수 사용을 고려하세요.
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("My.Namespace.functionName", window, arguments);
이 방법을 사용하면 함수의 컨텍스트를 유연하게 지정하여 다양한 부분에서 호출할 수 있습니다. 코드를 작성하세요.
위 내용은 JavaScript 함수를 이름으로 안전하게 호출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!