JS 기능을 호출하는 몇 가지 방법이 있습니다.
(1) 명명 된 함수를 직접 호출하십시오
코드 사본은 다음과 같습니다.
함수 foo ()
{
}
foo ();
(2) 익명 함수는 참조별로 호출됩니다
코드 사본은 다음과 같습니다.
fooref = function ()
{
}
fooref ();
(3) 참조가없는 익명 함수 호출 1
코드 사본은 다음과 같습니다.
(기능()
{
} ());
(4) 참조가없는 익명 함수 호출 2
코드 사본은 다음과 같습니다.
(기능()
{
}) ();
(5) 참조가없는 익명 함수 호출 3
코드 사본은 다음과 같습니다.
void function ()
{
} ();
그림 1.1과 그림 1.2는이 두 표현식의 작동 과정이 다르다는 것을 보여줍니다. 그림 1.1에서 강제 연산자는 기능 호출 작업을 실행할 수 있도록 사용됩니다. 그림 1.2에서 강제 연산자는 "기능 직접 수량 선언"표현을 작동시키는 데 사용되며 함수 자체에 대한 참조를 반환 한 다음 함수 호출 조작을 통해 작동됩니다 "()" ". 위의 마지막 익명 함수는 void function () {} ()을 호출합니다. 함수를 호출하고 반환 값을 무시하는 데 사용됩니다. 연산자 void는 다음을 수행하는 기능 표현을 수행하는 데 사용됩니다. "void"및 forced operation "()을 사용하지 않으면 코드를 실행할 수 있습니다.
(1) function () {} () // 사용 ''() "강제 호출
(2) function () {} (); //사용 ";" 진술을 실행합니다
스크립트 엔진은 function () {}이 함수 선언이라고 생각하여 구문 감지를 전달할 수 없으며 코드는 다음과 같이 구문 분석됩니다.
기능(){};();
function () {}는 선언으로 해석되며 "();"; 독립적으로 라인으로 해석되므로 구문 오류 가보고됩니다. 왜 "();"로 인한 오류라는 것을 알고 있습니까? 다음 코드로 변경합니다.
함수 () {} (1);
이것은 엔진에 의해 다음과 같이 설명됩니다.
fucntion () {};
(1); // 단일 값 표현식
따라서 구문 감지가 통과되었습니다 ...