>웹 프론트엔드 >JS 튜토리얼 >정의된 동일한 라인에서 익명 JavaScript 함수를 호출하는 이유는 무엇입니까?

정의된 동일한 라인에서 익명 JavaScript 함수를 호출하는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-10 01:45:13547검색

Why Do We Invoke Anonymous JavaScript Functions on the Same Line They're Defined?

동일 라인에서 익명 함수 호출: 이것이 중요한 이유

클로저의 맥락에서 익명 함수는 종종 동일한 라인에서 호출됩니다. 정의된 대로입니다. 이러한 관행은 기본 메커니즘과 그 뒤에 숨은 이유에 대한 의문을 제기합니다.

Javascript에서는 세 가지 방법을 사용하여 함수를 정의할 수 있습니다. 먼저 Function 생성자는 new 키워드를 사용하여 함수를 생성합니다. 둘째, 함수 선언에서는 function 키워드와 함수 이름을 사용합니다. 마지막으로 함수 표현식은 이름을 지정하지 않고 변수에 함수를 할당합니다.

제공된 코드에서 익명 함수는 함수 표현식을 사용하여 정의됩니다.

(function(msg){alert(msg)})('SO');

그러나 뒤에 세미콜론이 있는 경우 함수 정의가 삭제되면 코드가 실패합니다.

(function (msg){alert(msg)})
('SO');

이는 세미콜론이 없으면 코드가 두 개의 별도 코드로 해석되기 때문입니다. 명령문:

  1. 익명 함수 선언.
  2. 해당 함수에 대한 호출.

함수가 이전에 정의되지 않았으므로 의미상 올바르지 않습니다. 그것은 불린다. 이 오류를 방지하려면 세미콜론이 있어야 합니다.

또는 다음과 같이 함수 표현식을 정의하고 호출할 수 있습니다.

var myFunc = function(msg){alert(msg);}
myFunc('SO');

이 경우 함수는 변수에 할당됩니다. 호출되기 전에. 그러나 이 접근 방식에는 이름이 지정된 함수가 필요하며 이는 항상 바람직하지 않을 수 있습니다.

동일한 줄에서 익명 함수를 호출하면 이름이 지정된 변수 없이도 함수를 즉시 실행할 수 있습니다. 이는 한 번만 실행해야 하는 코드를 캡슐화할 때 특히 유용합니다. 또한 이름 충돌을 방지하고 코드베이스의 전역 변수 수를 줄이는 데 도움이 됩니다.

익명 함수 및 함수 표현식에 대한 자세한 내용은 ECMA 스크립트 사양(섹션 13 함수 정의) 또는 다음과 같은 추가 리소스를 참조하세요. "jQuery 및 $ 질문" 또는 위의 코드 조각에 제공된 예제.

위 내용은 정의된 동일한 라인에서 익명 JavaScript 함수를 호출하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.