>웹 프론트엔드 >JS 튜토리얼 >JavaScript 익명 함수 인스턴스 분석_javascript 기술

JavaScript 익명 함수 인스턴스 분석_javascript 기술

WBOY
WBOY원래의
2016-05-16 16:30:551675검색

이 기사의 예에서는 JavaScript 익명 함수의 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

요약:

이 글은 자바스크립트에서 가장 기본적이고 중요한 것, 즉 함수에 대해 설명하고 있습니다. 제가 이 글을 쓴 이유는 제가 인터뷰에서 질문을 받았기 때문인데, 다시 생각해 볼 수 있습니다.

먼저 예를 들어 이해하셨다면 이 글의 내용을 이미 이해하셨다는 뜻입니다.

코드 복사 코드는 다음과 같습니다.
var f = (function() {

함수 f() {return 10;}

f()를 반환합니다.

함수 f() {return 20;}

var f = 30;

})();

console.log(f);

함수는 고급 JavaScript 프로그래밍에서 다음과 같이 설명됩니다. 함수는 원하는 수의 명령문을 캡슐화할 수 있으며 언제 어디서나 호출하고 실행할 수 있습니다. 이전에 엄격 모드를 소개했습니다. 엄격 모드에는 기능에 몇 가지 제한이 있습니다.

① 함수 이름을 eval이나 Argument로 지정할 수 없습니다
② 매개변수 이름을 eval이나 인수로 지정할 수 없습니다
③ 동일한 이름을 가진 두 개의 명명된 매개변수가 있을 수 없습니다

위와 같은 상황이 발생하면 구문 오류가 발생하여 코드를 실행할 수 없습니다.

함수 정의

함수 정의는 세 가지 유형으로 나누어집니다

1. 생성자

코드 복사 코드는 다음과 같습니다.
var fun = new Funciton();

2. 일반적인 정의

코드 복사 코드는 다음과 같습니다.
function fun() {}

3. 기능적 정의

코드 복사 코드는 다음과 같습니다.
var fun = function() {};

fun 함수는 다음 세 가지 방식으로 정의할 수 있습니다.

매개변수

이 함수는 전달되는 매개변수 수나 매개변수가 전달되는 데이터 유형에 상관하지 않습니다. 정의한 함수가 두 개의 매개변수만 수신하더라도 이 함수를 호출할 때 반드시 두 개의 매개변수를 전달할 필요는 없습니다. 매개변수를 1개, 3개 또는 전혀 전달하지 않을 수도 있습니다. 그 이유는 매개변수가 내부적으로 배열로 표현되기 때문입니다. 함수 본문에서 인수 객체를 통해 매개변수 배열에 액세스할 수 있습니다(예:
).

코드 복사 코드는 다음과 같습니다.
function sayHi() {

Alert("안녕하세요 " 인수[0] "," 인수[1]);

}

인수 객체의 길이 속성에 액세스하여 매개변수가 몇 개 있는지 알아보세요. 함수의 길이는 함수의 매개변수 개수를 반환합니다.

참고: 모든 매개변수는 값으로 전달되며 참조로 매개변수를 전달하는 것은 불가능합니다.

함수는 오버로드될 수 없으며 다시 작성만 가능합니다

동일한 이름을 가진 두 개의 함수가 정의된 경우 이름은 마지막으로 정의된 함수에만 속합니다. 예:

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

함수 추가(숫자) {

숫자 100을 반환합니다.

}

함수 추가(num) {

숫자 200을 반환합니다.

}

var 결과 = add(100) //300

참고: return 문을 실행한 후 즉시 함수가 중지되고 종료됩니다.

함수 종류

함수는 명명된 함수와 익명 함수의 두 가지 유형으로 나뉩니다. 예를 들어 다음과 같은 유명한 함수

코드 복사 코드는 다음과 같습니다.
function fun() {

}

호출되면 fun()만 필요합니다.

익명 함수에는 이름에서 알 수 있듯이 함수 이름이 없습니다. 예를 들어

함수() {}

함수 호출은 함수 이름을 통해 호출됩니다. 익명 함수를 호출하는 방법은 무엇입니까? 하나는 익명 함수를 변수에 할당하고 변수가 함수 이름으로 사용되도록 하는 것입니다. 다른 하나는 다음 세 가지 방법과 같이 ()를 사용하여 호출하는 것입니다

1. (함수() {return;}());

2. (함수() {return;})();

3. 함수() {return;}();

예:

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

(함수(x, y) {

​​경고(x y);

})(2,3);

//경고(5)


2와 3은 x와 y에 매개변수로 전달됩니다

이 예는 나중에 논의할 클로저와 관련된 예입니다.

먼저 변수 f를 정의한 다음 이를 익명 함수에 할당합니다. 여기서는 함수의 모든 변수 정의가 앞에 추가되므로 익명 함수의 실행 순서는
입니다.

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

var f = (함수() {

var f = 30;

함수 f() {return 10;}

함수 f() {return 20;}

f()를 반환합니다.

})();


외부 변수 f와 내부 변수 f는 동일한 범위(클로저)에 있지 않으므로 서로 영향을 미치지 않습니다. ​함수는 오버로드될 수 없기 때문에 외부 변수 f=(function f() {return 20;})();이므로 최종 출력은 20입니다.

이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.

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