많은 개발자는 성능 문제, 잠재적인 보안 위험 및 지원 중단으로 인해 setTimeout에 문자열을 전달하는 관행에 눈살을 찌푸립니다. 상태. 그러나 이 구문이 도움이 될 수 있는 드문 시나리오가 있을 수 있습니다.
setTimeout 및 setInterval의 기존 구문에는 실행할 코드를 나타내는 문자열을 전달하는 것이 포함되었습니다. 예를 들면 다음과 같습니다.
<code class="javascript">setTimeout('doSomething(someVar)', 10000);</code>
그러나 최신 JavaScript에서는 함수 참조 사용을 대신 권장합니다.
<code class="javascript">setTimeout(function() { doSomething(someVar); }, 10000);</code>
권장 구문에서 벗어나는 유효한 이유가 있는 경우 한 가지 가능한 주장은 전역 범위에 있지만 로컬로 재정의되었을 수 있는 함수나 변수에 액세스하려는 욕구일 수 있습니다.
이러한 근거에도 불구하고 문자열을 사용하는 것은 setTimeout에서는 사용하지 않는 것이 좋습니다. 전역 변수는 여전히 창 개체의 속성을 통해 액세스할 수 있습니다. 예를 들어:
<code class="javascript">setTimeout(window.doSomething(someVar), 10000);</code>
setTimeout 및 setInterval에 대한 인수로 문자열을 허용하는 것은 역사적 요인에 뿌리를 두고 있을 가능성이 높습니다. 초기 버전의 JavaScript는 문자열만 지원했습니다. 함수 참조를 전달하는 기능을 추가하는 것은 나중에 추가되었습니다. 이전 버전과의 호환성을 보장하기 위해 브라우저는 더 이상 사용되지 않더라도 문자열 구문을 계속 허용합니다.
어떤 경우에는 문자열을 setTimeout에 전달하는 것이 기술적으로 가능하지만 일반적으로 그렇지 않습니다. 대체 접근 방식의 가용성으로 인해 권장됩니다. 함수 참조를 사용하면 성능이 향상되고 보안이 향상되며 최신 코드 지침을 준수합니다. 따라서 명확성, 유지 관리 용이성 및 전반적인 코드 품질을 위해 더 이상 사용되지 않는 문자열 구문을 피해야 합니다.
위 내용은 setTimeout에 문자열을 전달해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!