setTimeout을 사용한 문자열 기반 함수 호출이 정당화될 수 있습니까?

DDD
풀어 주다: 2024-10-20 07:42:02
원래의
783명이 탐색했습니다.

Can String-Based Function Calls with setTimeout Be Justified?

setTimeout에 문자열 전달: 회피 이유 및 예외

setTimeout 또는 해당 setInterval에 문자열을 전달하는 것은 일반적으로 devido에 눈살을 찌푸리게 합니다. 글로벌 범위에서의 실행에 대한 우려, 잠재적인 성능 문제 및 보안 취약성. 권장되는 대안은 익명 함수를 첫 번째 인수로 사용하는 것입니다.

그러나 특정 상황에서는 절약이 필요할 수 있습니다. 프로그래머가 전역 범위에 존재하지만 로컬로 재정의된 함수나 변수에 액세스하려는 경우 더 이상 사용되지 않는 문자열 구문을 사용하는 것을 고려할 수 있습니다. 그럼에도 불구하고 이 접근 방식은 변수 섀도잉 가능성으로 인해 좋지 않은 프로그래밍 방식으로 간주됩니다.

대부분의 경우 창 개체(예: window.globalVar)의 속성으로 전역 변수에 액세스할 수 있습니다. 문자열 기반 함수 호출에 의존할 필요가 없습니다. 따라서 문자열을 setTimeout 또는 setInterval의 첫 번째 인수로 사용하는 것이 실제로 도움이 되는 시나리오는 거의 발생하지 않습니다.

역사적으로 이러한 함수에 대한 인수로 코드 문자열을 사용할 수 있는 유일한 이유는 다음과 같습니다. JavaScript 1.0의 한계. 함수 개체 참조를 인수로 도입하는 것은 JavaScript 1.2에서만 발생했습니다. 이전 브라우저 및 스크립트와의 호환성을 유지하면 개발자가 문자열 기반 호출을 완전히 제거할 수 없습니다. 프로그래머는 주의 사항과 드문 예외를 모두 이해함으로써 setTimeout 및 setInterval과 관련된 코드를 작성할 때 충분한 정보를 바탕으로 결정을 내릴 수 있습니다.

위 내용은 setTimeout을 사용한 문자열 기반 함수 호출이 정당화될 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!