개요
함수는 함수임...
중학생 때 선생님께서는 함수를 자판기에 빗대어 설명하셨었다... 그리고 그 선생님은 옳았다...
- 자판기에서 뽑고 싶은 음료수를 생각한다.
필요한 함수를 선택 - 음료수가 요구하는 돈을 넣는다.
함수가 요구하는 인자값 대입 - 버튼을 누른다.
함수 실행 - 음료수가 밑으로 나온다.
함수에서 결과값을 출력 - 즐긴다.
즐김
인자값은 Parameter, 매개변수 같은 이름으로도 불린다. 뭐라 부르든 맞는 말이다. 나는 그냥 인자값이라고 함.
선언
function 함수명 ( 인자값명, 인자값명, 인자값명... )
{
쓰고 싶은 내용;
return 결과값;
}
function add( a, b )
{
return a + b;
}
function print()
{
console.log("난 그냥 출력용이야.");
}
function after_return( a, b )
{
return;
a = a + 5; // 죽은 코드
}
이런 식으로 return을 안해도 되고, return 했을 때 결과값이 아예 없어도 되고, 아예 함수의 인자값이 없어도 된다. return을 하는 순간 함수의 작동은 끝나고, 그 밑 라인의 코드들은 실행되지 않는다.
객체의 메소드 (Method)
함수는 변수에 저장해서 쓸 수도 있고, 객체의 속성처럼도 쓸 수 있다. let variable = test_func() 처럼 쓸 수 있다는 말이다! 이게 음청 싱기방기하고 유용한 기능임
function print( a )
{
console.log("읽어들인 값은 " + a + " (이)에요.");
}
let a = 5;
let printf = print;
printf(a); // 전역 함수처럼 쓰기
let obj = { a:99, printValue:print };
obj.printValue(obj.a); // 객체의 속성 중 일부로 쓰기
위의 printf(a)와 obj.printValue(obj.a)는 같은 print()의 기능을 한다. 대부분 객체에 함수를 넣지, printf(a)처럼 전역변수에 함수를 넣는 경우는 거의 없다.
객체에 들어간 변수는 속성(Property)이라 불린다. 그럼 객체에 들어간 함수는? 우린 이걸 메소드(Method)라 부르기로 했어요~
C++이나 Java 같은 객체지향 언어를 배워봤다면 클래스라는 개념에 대해서 알고 있을거임. Js도 클래스 비슷한 게 있다고 생각하면 된다. 단지 클래스라는 틀이 없이 그 때 그 때 짜준다는 게 다를 뿐... 함수도 밖에서 만들어서 안에다 붙이는 형태다.
메소드를 통해서 메소드가 있는 오브젝트의 속성값에 접근하기
해당 속성을 편집하고자 할 때 this.속성명 을 쓰면 된다. 끝. 이렇게 되면 전역함수로는 쓸 수 없게 되겠지?
'프로그래밍 > JavaScript' 카테고리의 다른 글
| 배열 ( Array ) (0) | 2022.02.11 |
|---|---|
| 문자열 ( String ) (0) | 2022.02.11 |
| 연산 (0) | 2022.02.11 |
| 변수 (0) | 2022.02.11 |
| 기초의 베이직 (0) | 2022.02.11 |