JS 튜토리얼

제이에스 홈 JS 소개 JS 어디로 JS 출력 JS 문 JS 구문 JS 코멘트 JS 변수 제이에스렛 JS 상수 JS 연산자 JS 산술 JS 할당 JS 데이터 유형 JS 함수 JS 객체 JS 이벤트 JS 문자열 JS 문자열 메서드 JS 문자열 검색 JS 문자열 템플릿 JS 번호 JS 숫자 메서드 JS 배열 JS 배열 메서드 JS 배열 정렬 JS 배열 반복 JS 배열 상수 JS 날짜 JS 날짜 형식 JS 날짜 가져오기 메서드 JS 날짜 설정 방법 JS 수학 JS 랜덤 JS 부울 JS 비교 JS 조건 JS 스위치 JS 루프 In에 대한 JS 루프 의 JS 루프 JS 루프 동안 JS 브레이크 JS 이터러블 JS 세트 JS 맵 JS 유형 JS 유형 변환 JS 비트와이즈 JS 정규 표현식 JS 오류 JS 범위 JS 호이스팅 JS 엄격 모드 JS 이 키워드 JS 화살표 함수 JS 클래스 JS JSON JS 디버깅 JS 스타일 가이드 JS 모범 사례 JS 실수 JS 성능 JS 예약어

JS 버전

JS 버전 JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE / 엣지 JS 연혁

JS 객체

객체 정의 개체 속성 개체 메서드 개체 표시 개체 접근자 객체 생성자 개체 프로토타입 객체 반복 가능 객체 세트 객체 맵 개체 참조

JS 함수

기능 정의 기능 매개변수 함수 호출 함수 호출 기능 적용 함수 클로저

JS 클래스

수업 소개 클래스 상속 클래스 정적

JS 비동기

JS 콜백 JS 비동기 JS 약속 JS 비동기/대기

JS HTML DOM

DOM 소개 DOM 메서드 DOM 문서 DOM 요소 DOM HTML DOM 양식 DOM CSS DOM 애니메이션 DOM 이벤트 DOM 이벤트 리스너 DOM 탐색 DOM 노드 DOM 컬렉션 DOM 노드 목록

JS 브라우저 BOM

JS 창 JS 화면 JS 위치 JS 연혁 JS 네비게이터 JS 팝업 경고 JS 타이밍 JS 쿠키

JS 웹 API

웹 API 소개 웹 양식 API 웹 기록 API 웹 스토리지 API 웹 작업자 API 웹 가져오기 API 웹 지리적 위치 API

JS 아약스

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

JS JSON

JSON 소개 JSON 구문 JSON 대 XML JSON 데이터 유형 JSON 구문 분석 JSON 문자열화 JSON 객체 JSON 배열 JSON 서버 JSON PHP JSON HTML JSON JSONP

JS 대 jQuery

jQuery 선택기 제이쿼리 HTML 제이쿼리 CSS 제이쿼리 DOM

JS 그래픽

JS 그래픽 JS 캔버스 JS 플로틀리 JS 차트.js JS 구글 차트 JS D3.js

JS 예제

JS 예제 JS HTML DOM JS HTML 입력 JS HTML 객체 JS HTML 이벤트 JS 브라우저 JS 편집기 JS 연습 JS 퀴즈 JS 인증서

JS 참조

자바스크립트 객체 HTML DOM 객체


자바스크립트 함수 호출


JavaScript 내부의 코드 function는 "무언가"가 이를 호출할 때 실행됩니다.


JavaScript 함수 호출

함수 내부의 코드는 함수가 정의 될 때 실행되지 않습니다 .

함수 내부의 코드는 함수가 호출 될 때 실행됩니다 .

"함수 호출 " 대신 " 함수 호출 "이라는 용어를 사용하는 것이 일반적 입니다.

또한 "함수 호출", "함수 시작" 또는 "함수 실행"이라고 말하는 것이 일반적입니다.

이 자습서에서는 호출하지 않고 JavaScript 함수를 호출할 수 있으므로 invoke 를 사용 합니다.


함수를 함수로 호출하기

예시

function myFunction(a, b) {
  return a * b;
}
myFunction(10, 2);           // Will return 20

위의 함수는 어떤 객체에도 속하지 않습니다. 그러나 JavaScript에는 항상 기본 전역 객체가 있습니다.

HTML에서 기본 전역 개체는 HTML 페이지 자체이므로 위의 함수는 HTML 페이지에 "속합니다".

브라우저에서 페이지 개체는 브라우저 창입니다. 위의 함수는 자동으로 윈도우 함수가 됩니다.

myFunction() 및 window.myFunction()은 동일한 기능입니다.

예시

function myFunction(a, b) {
  return a * b;
}
window.myFunction(10, 2);    // Will also return 20

이것은 JavaScript 함수를 호출하는 일반적인 방법이지만 그다지 좋은 방법은 아닙니다.
전역 변수, 메서드 또는 함수는 전역 개체에서 이름 충돌과 버그를 쉽게 만들 수 있습니다.



키워드 _

JavaScript에서 라는 것은 this현재 코드를 "소유하는" 객체입니다.

의 값은 this함수에서 사용될 때 함수를 "소유하는" 객체입니다.

this변수가 아니라는 점에 유의하십시오 . 키워드입니다. 의 값은 변경할 수 없습니다 this.

팁: JS this Keywordthis 에서 키워드에 대해 자세히 읽어보세요 .


전역 개체

소유자 객체 없이 함수를 호출하면 의 값 this 이 전역 객체가 됩니다.

웹 브라우저에서 전역 개체는 브라우저 창입니다.

이 예제는 window 객체를 다음 값으로 반환합니다 this.

예시

let x = myFunction();            // x will be the window object

function myFunction() {
  return this;
}

함수를 전역 함수로 호출하면 this의 값 전역 객체가 됩니다.
window 객체를 변수로 사용하면 프로그램이 쉽게 충돌할 수 있습니다.


함수를 메서드로 호출하기

JavaScript에서는 함수를 객체 메서드로 정의할 수 있습니다.

다음 예제에서는 두 개의 속성( firstNamelastName )과 메서드( fullName ) 가 있는 객체( myObject )를 만듭니다.

예시

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}
myObject.fullName();         // Will return "John Doe"

fullName 메서드 는 함수입니다. 함수는 객체에 속합니다. myObject 는 함수의 소유자입니다.

라는 것은 thisJavaScript 코드를 "소유"하는 객체입니다. 이 경우 의 값 thismyObject 입니다.

그것을 테스트! 다음 값을 반환하도록 fullName 메서드를 변경합니다 this.

예시

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this;
  }
}

// This will return [object Object] (the owner object)
myObject.fullName();

함수를 개체 메서드로 호출하면 의 값이 this 개체 자체가 됩니다.


함수 생성자로 함수 호출하기

함수 호출 앞에 new키워드가 있으면 생성자 호출입니다.

새 함수를 만드는 것처럼 보이지만 JavaScript 함수는 객체이기 때문에 실제로 새 객체를 만듭니다.

예시

// This is a function constructor:
function myFunction(arg1, arg2) {
  this.firstName = arg1;
  this.lastName  = arg2;
}

// This creates a new object
const myObj = new myFunction("John", "Doe");

// This will return "John"
myObj.firstName;

생성자 호출은 새 개체를 만듭니다. 새 개체는 생성자에서 속성과 메서드를 상속합니다.

생성자 의 this키워드에 값이 없습니다.
의 값은 this함수가 호출될 때 생성되는 새 객체입니다.