javascript 함수 정의 방법

6109 단어 정의 함수
JavaScript 는 키워드 function 정의 함 수 를 사용 합 니 다.
함 수 는 성명 을 통 해 정의 할 수도 있 고 표현 식 일 수도 있 습 니 다.
함수 선언
이전 튜 토리 얼 에서 함수 성명 의 문법 을 알 게 되 었 습 니 다.

function functionName(parameters) {
     
}
함수 성명 후 즉시 실행 되 지 않 습 니 다.필요 할 때 호출 됩 니 다.
실례

function myFunction(a, b) {
return a * b;
}
함수 식
JavaScript 함 수 는 표현 식 으로 정의 할 수 있 습 니 다.
함수 표현 식 은 변수 에 저장 할 수 있 습 니 다:
실례

var x = function (a, b) {return a * b};
함수 표현 식 이 변수 에 저 장 된 후에 변수 도 함수 로 사용 할 수 있 습 니 다.
실례

var x = function (a, b) {return a * b};
var z = x(4, 3);
이상 함 수 는 사실상 익명 함수 입 니 다.
함 수 는 변수 에 저장 되 어 있 으 며 함수 이름 이 필요 하지 않 습 니 다.보통 변수 이름 을 통 해 호출 됩 니 다.
Function()구조 함수
상기 실례 에서 우 리 는 함수 가 키워드 function 을 통 해 정 의 된 것 을 알 게 되 었 다.
함수 역시 내 장 된 JavaScript 함수 구조 기(Function()를 통 해 정의 할 수 있 습 니 다.

var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);
실제로 너 는 구조 함 수 를 사용 할 필요 가 없다.위의 인 스 턴 스 는 다음 과 같이 쓸 수 있 습 니 다.

var myFunction = function (a, b) {return a * b}
var x = myFunction(4, 3);
함수 향상(호 이 스 팅)
이전 튜 토리 얼 에서 우 리 는 이미'hoisting(승진)'을 알 게 되 었 다.
향상(Hoisting)은 자 바스 크 립 트 가 현재 역할 영역 을 기본적으로 앞으로 끌 어 올 리 는 행위 입 니 다.
변수 에 적용 되 는 성명 과 함수 의 성명 을 향상 시 킵 니 다.
따라서 함 수 는 성명 하기 전에 호출 할 수 있 습 니 다.

myFunction(5);

function myFunction(y) {
  return y * y;
}
표현 식 정의 함 수 를 사용 할 때 올 릴 수 없습니다.
자동 호출 함수
함수 표현 식 은'자체 호출'할 수 있 습 니 다.
자동 호출 식 은 자동 으로 호출 됩 니 다.
표현 식 뒤에 바짝 붙 으 면()자동 으로 호출 됩 니 다.
성명 의 함 수 를 스스로 호출 할 수 없습니다.
괄호 를 추가 함으로써 함수 표현 식 임 을 설명 합 니 다.

(function () {
  var x = "Hello!!";   //       
})();
물론 다음 과 같이 쓸 수도 있다.

!function(){}();
+function(){}();
-function(){}();
~function(){}();
~(function(){})();
void function(){}();
(function(){}());
가장 많이 쓰 이 는 것 은 역시 첫 번 째 방법 이다.
이상 함 수 는 실제 적 으로 익명 으로 호출 된 함수 입 니 다(함수 명 없 음).
함 수 는 하나의 값 으로 사용 할 수 있다.
JavaScript 함 수 를 하나의 값 으로 사용 합 니 다:

function myFunction(a, b) {
  return a * b;
}

var x = myFunction(4, 3);
JavaScript 함 수 는 표현 식 으로 사용 할 수 있 습 니 다:

function myFunction(a, b) {
  return a * b;
}

var x = myFunction(4, 3) * 2;
함수
JavaScript 에서 type:of 연산 자 를 사용 하여 함수 형식 을 판단 하면"function"으로 돌아 갑 니 다.
하지만 자 바스 크 립 트 함 수 는 한 대상 으로 묘사 하 는 것 이 더 정확 합 니 다.
자 바스 크 립 트 함 수 는 속성 과 방법 이 있 습 니 다.
arguments.length 속성 반환 함수 호출 과정 에서 받 은 매개 변수 갯 수:

function myFunction(a, b) {
  return arguments.length;
}
toString()방법 은 함 수 를 문자열 로 되 돌려 줍 니 다.

function myFunction(a, b) {
  return a * b;
}

var txt = myFunction.toString();
함수 정의 대상 의 속성 을 대상 방법 이 라 고 합 니 다.
함수 가 새로운 대상 을 만 드 는 데 사용 된다 면 대상 의 구조 함수 라 고 합 니 다.
다음은 여러 가지 방법의 예제 코드 이다.

<html> 
<head></head> 
<body> 
<script type="text/javascript"> 
/*javascript    (    )       :    、    、     。*/ 
/*1.     function(param){}*/ 
function print(msg) 
{ 
document.write(msg,"<br/>"); 
} 
/*       return   ,         ,   undefined*/ 
/*2.      :new Function()*/ 
var add1=new Function('a','b','return a+b'); 
/*3.      ,       ,*/ 
var result = function(x,y){return x+y;}; 
/*        */ 
var result2 = function fact(x){if(x<1) return 1;else return x*fact(x-1)}; 
document.write('       :'); 
print("<hr/>"); 
print('        :add1(5,6)'); 
print(add1(5,6)); 
print("<hr/>"); 
print("        :result(3,4)"); 
var re =result(3,4); 
print(re); 
print("        :result2(3)"); 
print(result2(3)); 
print("<hr/>"); 
print('        '); 
/*          */ 
function add(x,y){return x+y;} 
function subtract(x,y){return x-y;} 
function multiply(x,y){return x*y;} 
function divide(x,y){return x/y;} 
function operate(operator,operand1,operand2) 
{ 
return operator(operand1,operand2); 
} 
//  (2+3) + (4*5) 
var i = operate(add,operate(add,2,3),operate(multiply,4,5)); 
print('(2+3) + (4*5)='+i); 
print("<hr/>"); 
//        
var operators = new Object(); 
operators['add'] = function(x,y){return x+y;} 
operators['substract'] = function(x,y){return x-y;} 
operators['multiply'] = function(x,y){return x*y;} 
operators['divide'] = function(x,y){return x/y;} 
operators['pow'] = Math.pow; 
function operate2(op_name,operand1,operand2) 
{ 
if(operators[op_name] == null) return "unknown operator"; 
else return operators[op_name](operand1,operand2); 
} 
//  "hello" + "" + "world" 
var j = operate2("add","hello",operate2("add"," ","world")); 
var k = operate2("pow",10,2); 
print(j); 
print(k); 
print("<hr/>"); 
</script> 
</body> 
</html> 
실행 결 과 는:
일반적인 방법 호출:
--------------------------------------------------------------------------------
구조 함수 호출 방법:add 1(5,6)
11
--------------------------------------------------------------------------------
호출 함수 직접 양 법:result(3,4)
7
호출 함수 직접 양 법:result 2(3)
6
--------------------------------------------------------------------------------
함수 데이터 로 사용
(2+3) + (4*5)=25
--------------------------------------------------------------------------------
hello world
100

좋은 웹페이지 즐겨찾기