JavaScript 익명, 명명된 함수 및 즉시 실행 함수에 대한 자세한 설명 IIFE
JavaScript의 함수 범위는 변수와 함수를 "숨기기" 위해 존재합니다.
최소 권한 원칙을 따릅니다.
동시에 또 다른 이점은 같은 이름 기호 충돌
오늘은 이 즉시 실행 함수에 대해 주로 이야기하겠습니다.
그 전에 익명 함수와 명명된 함수를 검토하세요
익명 함수와 명명된 함수
혹시 익명 또는 이름 지정은 함수 표현식에 모두 사용됩니다
함수 선언에는 이름이 있어야 합니다. 그렇지 않으면 오류가 보고됩니다
function foo(){ //函数声明 //...}
함수 표현식에 이름이 있을 수도 있고 없을 수도 있습니다여기서 이스터 에그에 대해 설명하겠습니다. 아마도 내 기사를 읽으실 것입니다. 예제 코드를 사용할 때 저는 항상
을 사용하는 것을 좋아합니다. fn, func, 데모, foo, bar, foobar와 같은 단어
fn과 func는 function "function"의 약어입니다
Demo는 Demonstration "example"이라는 단어의 줄임말입니다
foo, bar, foobar 기술 서적이나 컴퓨터 문헌에서 자주 볼 수 있는
foo는 "엉망진창"을 의미하는 fuck-up의 약어인 fu의 변형입니다.
bar는 "모든 인식을 뛰어넘는 것"입니다. 이는 "인지할 수 없는 것"이라는 뜻입니다. 이는 Xiao Ming Xiao Hong, A, B, B, D, Zhang San, Li Si...
var foo = function(){...}; console.log(foo.name); //foo var bar = function foobar(){...};//不要这么写 console.log(bar.name); //foobar
그렇게 작성하지 말자
예를 들어 타이머에서
setTimeout(function(){ //...},1000);
사용하기가 간단하고 투박합니다
그러나 몇 가지 단점이 있습니다
- 추적 스택에 함수 이름이 없어 디버깅이 어렵습니다
- 자신을 참조해야 하는 경우 인수.callee만 사용할 수 있습니다(ES5에서는 비활성화됨). 엄격 모드)
- 함수의 가독성 및 이해도 감소
그래서
함수 표현식에 이름을 지정하는 것이 가장 좋은 습관이자 좋은 습관입니다
setTimeout(function timerHandler(){ //...},1000);
자체 실행 함수, 자동 실행 함수 등으로 불리는 것도 있습니다.
더 표준적인
즉시 실행 함수 표현식
주의하세요 제 표현은 함수식입니다
다들 쓰시면서 이렇게 쓸 수 있다는 걸 발견하고
퍼뜨려 지금까지
이름처럼 실행 흐름은 이 함수로 실행되어 즉시 실행됩니다.
커뮤니티에서 제공한 용어는 다음과 같습니다.
IIFE(즉시 호출되는 함수 표현)
(function(){ //...}());
물론 수식에 이름을 추가하는 것도 좋고, 명명된 함수 표현식의 장점도 있습니다
두 가지 용도는 다음과 같습니다. 완전히 동일하며 어느 것을 사용할지는 사용자의 몫입니다
하지만 저는 괄호를 바깥쪽에 쓰는 것을 선호하므로 보기가 더 편합니다
그리고 많은 마스터가 저와 같은 것을 보았습니다
예를 들어 우리의 일반적인 창 전달 방법
(function(){ //...})();
우리 Scope 관점에서 분석
(내가 작성한 Scope를 보시면 됩니다 -> Portal)
전역 객체의 참조는 로컬 환경에 캐시됩니다
더 빠르게 액세스할 수 있습니다. 전역 객체, 검색을 위해 최상위 범위로 이동할 필요가 없습니다
이 작은 최적화는 초점이 아닙니다
코드를 압축할 때 핵심 포인트를 최적화할 수 있습니다
아마도 위의 코드 압축 도구일 것입니다 이렇게 압축할 수 있습니다
var a = '全局'; (function IIFE(global){ var a = '局部'; console.log(a);// "局部" console.log(global.a);// "全局"})(window);
var a = '全局'; (function IIFE(g){ var a = '局部'; console.log(a);// "局部" console.log(g.a);// "全局"})(window);
jQuery와 같은 프레임워크의 전반적인 아키텍처도 이와 매우 유사합니다
. 익숙해지면 우리보다 더 전통적이라고 느낄 것입니다. 사용법을 이해하기가 더 쉽습니다.
그러면 함수가 호출되고, 윈도우가 매개변수로 전달됩니다
표현식이므로 실행 가능합니다
데모에서 얻는 것은 함수의 반환값입니다표현식 실행이 가능하므로 다음 메소드를 바로 실행 가능합니다function(){}()
(function IIFE(demo){ demo(window);})(function demo(global){ //... });
그렇습니다. 쉼표도 함수식으로 변환하여 바로 실행할 수 있다고 볼 수 있습니다
하지만 이렇게 쓰면 안됩니다 함수에 반환값이 있으면 예상치 못한 부작용이 발생할 수 있습니다 가독성도 좋지 않습니다
요약
함수 선언에는 이름이 있어야 합니다
이름이 지정된 함수 표현식을 사용하는 것이 좋습니다
함수 표현식 사용 즉시 실행: (function(){}());
(function(){})();
창 매개변수를 전달하는 함수를 즉시 실행하여 스코프 체인에서 창 속도를 최적화합니다. 이는 코드 압축에 유리합니다
수식만 실행 가능
위 내용은 JavaScript 익명, 명명함수, 즉시실행함수 IIFE에 대한 자세한 설명입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WebSocket 및 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법 소개: 지속적인 기술 개발로 음성 인식 기술은 인공 지능 분야의 중요한 부분이 되었습니다. WebSocket과 JavaScript를 기반으로 한 온라인 음성 인식 시스템은 낮은 대기 시간, 실시간, 크로스 플랫폼이라는 특징을 갖고 있으며 널리 사용되는 솔루션이 되었습니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 음성 인식 시스템을 구현하는 방법을 소개합니다.

WebSocket과 JavaScript: 실시간 모니터링 시스템 구현을 위한 핵심 기술 서론: 인터넷 기술의 급속한 발전과 함께 실시간 모니터링 시스템이 다양한 분야에서 널리 활용되고 있다. 실시간 모니터링을 구현하는 핵심 기술 중 하나는 WebSocket과 JavaScript의 조합입니다. 이 기사에서는 실시간 모니터링 시스템에서 WebSocket 및 JavaScript의 적용을 소개하고 코드 예제를 제공하며 구현 원칙을 자세히 설명합니다. 1. 웹소켓 기술

JavaScript 및 WebSocket을 사용하여 실시간 온라인 주문 시스템을 구현하는 방법 소개: 인터넷의 대중화와 기술의 발전으로 점점 더 많은 레스토랑에서 온라인 주문 서비스를 제공하기 시작했습니다. 실시간 온라인 주문 시스템을 구현하기 위해 JavaScript 및 WebSocket 기술을 사용할 수 있습니다. WebSocket은 TCP 프로토콜을 기반으로 하는 전이중 통신 프로토콜로 클라이언트와 서버 간의 실시간 양방향 통신을 실현할 수 있습니다. 실시간 온라인 주문 시스템에서는 사용자가 요리를 선택하고 주문을 하면

WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법 오늘날의 디지털 시대에는 점점 더 많은 기업과 서비스에서 온라인 예약 기능을 제공해야 합니다. 효율적인 실시간 온라인 예약 시스템을 구현하는 것이 중요합니다. 이 기사에서는 WebSocket과 JavaScript를 사용하여 온라인 예약 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. WebSocket이란 무엇입니까? WebSocket은 단일 TCP 연결의 전이중 방식입니다.

JavaScript 및 WebSocket: 효율적인 실시간 일기 예보 시스템 구축 소개: 오늘날 일기 예보의 정확성은 일상 생활과 의사 결정에 매우 중요합니다. 기술이 발전함에 따라 우리는 날씨 데이터를 실시간으로 획득함으로써 보다 정확하고 신뢰할 수 있는 일기예보를 제공할 수 있습니다. 이 기사에서는 JavaScript 및 WebSocket 기술을 사용하여 효율적인 실시간 일기 예보 시스템을 구축하는 방법을 알아봅니다. 이 문서에서는 특정 코드 예제를 통해 구현 프로세스를 보여줍니다. 우리

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

사용법: JavaScript에서 insertBefore() 메서드는 DOM 트리에 새 노드를 삽입하는 데 사용됩니다. 이 방법에는 삽입할 새 노드와 참조 노드(즉, 새 노드가 삽입될 노드)라는 두 가지 매개 변수가 필요합니다.

JavaScript는 웹 개발에 널리 사용되는 프로그래밍 언어인 반면 WebSocket은 실시간 통신에 사용되는 네트워크 프로토콜입니다. 두 가지의 강력한 기능을 결합하면 효율적인 실시간 영상 처리 시스템을 만들 수 있습니다. 이 기사에서는 JavaScript와 WebSocket을 사용하여 이 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 첫째, 실시간 영상처리 시스템의 요구사항과 목표를 명확히 할 필요가 있다. 실시간 이미지 데이터를 수집할 수 있는 카메라 장치가 있다고 가정해 보겠습니다.
