setTimeout에 문자열을 전달해야 합니까?

Patricia Arquette
풀어 주다: 2024-10-20 07:32:02
원래의
846명이 탐색했습니다.

Is It Ever Necessary to Pass Strings to setTimeout?

setTimeout에 문자열 전달: 필요성에 대한 질문

많은 개발자는 성능 문제, 잠재적인 보안 위험 및 지원 중단으로 인해 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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