>  기사  >  웹 프론트엔드  >  js 함수 호출 방법_기본지식

js 함수 호출 방법_기본지식

WBOY
WBOY원래의
2016-05-16 16:49:441135검색

Js 함수를 호출하는 방법은 다음과 같습니다.

(1) 명명된 함수는

코드 복사를 직접 호출합니다. 코드는 다음과 같습니다.

함수 foo()
{
}
foo();

(2) 참조로 익명 함수 호출

코드 복사 코드는 다음과 같습니다.

fooRef = function()
{
}
fooRef();

(3) 참조 없는 익명 함수 호출 1

코드 복사 코드는 다음과 같습니다.

(함수()
{
}());

(4) 참조 없는 익명 함수 호출 2

코드 복사 코드는 다음과 같습니다.

(함수()
{
})();

(5) 참조 없는 익명 함수 호출 3

코드 복사 코드는 다음과 같습니다.

무효 함수()
{

}();


js 함수 호출 방법_기본지식

그림 1.1과 그림 1.2를 보면 이 두 표현식의 연산 과정이 서로 다르다는 것을 알 수 있습니다. 그림 1.1에서는 강제 연산자를 사용하여 함수 호출 연산을 수행하고, 그림 1.2에서는 강제 연산자를 사용하여 " function direct" Quantity는 "이 식을 선언하고 함수 자체에 대한 참조를 반환한 다음 함수 호출 연산 "()"을 통해 함수 참조를 연산합니다. 위의 마지막 익명 함수 호출 void function(){}();은 함수를 호출하고 반환 값을 무시하는 데 사용됩니다. 연산자 void는 후속 함수 표현식이 작업을 수행하도록 하는 데 사용됩니다. "void"와 강제 연산 "()"를 사용하지 않으면 코드가 실행될 수 있나요?

(1)function(){}() //'()'를 사용하여 강제 호출

(2)function(){}(); //";"를 사용하여 명령문 실행

스크립트 엔진은 function(){}을 함수 선언으로 간주하여 구문 감지에 실패하고 코드는 다음과 같이 구문 분석됩니다.

함수(){};();

function(){}은 명령문으로 해석되는 반면 "();"는 별도의 줄로 해석되므로 구문 오류가 보고됩니다. "();"로 인해 오류가 발생한다는 것을 아는 이유는 무엇입니까? ? 다음 코드로 변경합니다:

함수(){}(1);

엔진에서는 다음과 같이 해석합니다.

함수(){};

(1); //단일 값 표현식

그래서 문법 검사를 통과했습니다...

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