>  기사  >  웹 프론트엔드  >  JavaScript_javascript 기술에서 명명된 함수의 다양한 호출 방법 요약

JavaScript_javascript 기술에서 명명된 함수의 다양한 호출 방법 요약

WBOY
WBOY원래의
2016-05-16 16:32:071563검색

이전 기사에서 익명 함수를 호출하는 다양한 방법을 언급했습니다. 이 문서에서는 명명된 함수를 호출하는 다양한 방법을 살펴봅니다.

1, ()

가장 일반적으로 사용되는 것은 함수 호출/실행을 위한 () 연산자입니다.

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

// 매개변수 없는 함수 fun1
함수 fun1() {
Alert('전화를 받았습니다');
}
fun1();

// 매개변수화된 함수 fun2
함수 fun2(param) {
경고(매개변수);
}
fun2('나는 불렸다');

ECMAScript3에 호출을 추가하고 Function에 적용하면 다음과 같은 두 가지 유형이 있습니다.

2.전화

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

// 매개변수 없는 함수 fun1
함수 fun1() {
Alert('전화를 받았습니다');
}
fun1.call(null);

// 매개변수화된 함수 fun2
함수 fun2(param) {
경고(매개변수);
}
fun2.call(null,'내가 불렸어요')

3. 신청

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

// 매개변수 없는 함수 fun1
함수 fun1() {
Alert('전화를 받았습니다');
}
fun1.apply(null);

// 매개변수화된 함수 fun2
함수 fun2(param) {
경고(매개변수);
}
fun2.apply(null,['나는 불렸다'])

call 및 Apply는 순전히 함수 호출/실행에만 사용될 수 있지만 함수 실행 컨텍스트를 변경하는 데 더 많이 사용됩니다.

4. 새로운(이 방법은 권장되지 않음)

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

// 매개변수 없는 함수 fun1
함수 fun1() {
Alert('전화를 받았습니다');
}
새로운 재미1();

// 매개변수화된 함수 fun2
함수 fun2(param) {
경고(매개변수);
}
new fun2('나는 불렸다')

new의 본질은 클래스의 인스턴스를 생성/구성하는 것입니다. 여기에 정의된 fun1 및 fun2는 분명히 클래스가 아닙니다(이건 프로토타입도 아닙니다). 그러나 두 기능 모두 실행되었습니다. 이것은 새로운 부작용입니다.

위의 호출 메소드 중 4가지 메소드의 실행 결과에는 차이가 없습니다. 하지만 함수에 반환 값이 있는 경우 new로 호출할 때 약간 실망할 수 있습니다.

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

// 반환값을 갖는 fun
함수 함수 fun() {
Alert('전화를 받았습니다');
"잭"을 반환합니다.
}
var c = 새로운 재미();
경고(c);//[객체 객체], 왜 "잭"이 아닌가요?

이것으로 바꿔보세요

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

// 반환값을 갖는 fun
함수 함수 fun() {
Alert('전화를 받았습니다');
{이름:'jack'}을(를) 반환하세요.
}
var c = 새로운 재미();
Alert(c.name); //jack, 정상적으로 반환됨

요약하자면: 새로운 메소드를 사용하여 함수를 호출할 때. 반환값이 있는 경우 반환값이 String, Number, Boolean 등과 같은 JavaScript 내장형(기본형)인 경우 반환값이 객체인 경우에는 반환하지 않습니다. function , array 및 기타 객체 유형의 경우 객체, 함수, 배열이 직접 반환됩니다.

반환값이 내장형(기본형)인 경우 new fun()은 정확히 무엇을 반환하나요? 다음 기사에서는 새 메서드 호출에 대해 자세히 설명합니다.

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