JavaScript 함수 의 세 가지 방법 은 함수 마다 하나의 대상(하나)입 니 다.

3682 단어 JavaScript함수.
1.함 수 를 설명 하 는 세 가지 방법(Declaring a Function)방법 1:function functionName([parameters]){functionBody};Example D1
 
function add(a, b)
{
return a+b;
}
alert(add(1,2)); // produces 3
우리 가 함 수 를 이렇게 설명 할 때 함수 의 내용 이 해석 되 었 습 니 다(그러나 실행 되 지 않 았 습 니 다.이 함 수 를 호출 해 야 실행 할 수 있 습 니 다).또한 add 라 는 대상 이 만 들 어 졌 습 니 다.방법 2:이름 없 는 함수 function 을 지정 변수(var)Example D2
 
var add=function(a, b)
{
return a+b;
}
alert(add(1,2)); // produces 3
에 부여 합 니 다.이러한 설명 되 지 않 은 문법 은 이상해 보이 지만'함수 즉 대상'을 잘 이해 하 는 데 도움 을 줄 수 있 습 니 다.이런 방식 으로 명 시 된 함수 의 내용 은 똑 같이 해석 되 고 실행 되 지 않 았 다.이 동시에 우 리 는 이렇게 정의 할 수 있다.Example D2A:
 
var add=function theAdd(a, b)
{
return a+b;
}
alert(theAdd(1,2)); // produces 3
alert(add(1,2)); // also produces 3
는 위의 예 에서 알 수 있 듯 이 우 리 는 함수 명 the Add 호출 함수 도 사용 할 수 있 고 지정 한 함수 변수 명 add 호출 함수 도 사용 할 수 있다.Example D2B:
 
var myObject=new Object();
myObject.add=function(a,b){return a+b};
// myObject now has a property/a method named "add"
// and I can use it like below
myObject.add(1, 2);
이 예 는 우리 가 사용자 정의 함 수 를 특정한 대상 의 속성 으로 해 야 할 때 이런 함수 설명 방법 은 매우 유용 하고 OOP 의 사상 에 더욱 가깝다 는 것 을 나타 낸다.방법 3:new 연산 자 를 사용 하여 함수
 
varName=new Function([param1Name, param2Name,...paramNName], functionBody);
Example D3:
 
var add=new Function("a", "b", "return a+b;");
alert(add(3,4)); // produces 7
를 설명 합 니 다.여기 에는 두 개의 인자 a 와 b,그리고 하나의 함수 체 가 있 습 니 다.a+b 를 되 돌려 줍 니 다.또한,new Function(...)은 소문 자 function 이 아 닌 대문자 Function 을 사용 합 니 다.이것 은 우리 가 Function 대상 을 만 들 겠 다 는 것 을 나타 냅 니 다.이 동시에 우 리 는 앞의 매개 변수 이름과 뒤의 함수 체 가 모두 문자열 형식 으로 전달 되 었 음 을 알 수 있다.우 리 는 많은 인 자 를 가 질 수 있 습 니 다.자 바스 크 립 트 는 함수 체 를 자동 으로 판별 합 니 다.보통 오른쪽 괄호 에서 가장 가 까 운 인자 입 니 다.물론,우 리 는 반드시 모든 코드 를 같은 줄 에 쓸 필 요 는 없습니다.우 리 는 여러 줄 로 나 누 어 쓸 수 있 습 니 다.중간 에"+"또는"\"를 사용 하여 연결 할 수 있 습 니 다."+"자바 스 크 립 트 는 다음 줄 에서 남 은 코드 를 찾 을 것 이 라 고"\"와 알려 줍 니 다.Example D3A
 
var add=new Function("a", "b",
"alert" + // chop string using "+"
"('adding '+a+' and ' +b);\ // separate string using "\"
return a+b;");
alert(add(3,4)); // produces 7
물론 이런 방식 으로 함 수 를 설명 하면 함수 체 가 해석 되 지 않 아 성능 이 떨 어 집 니 다.왜 일 까요?다음 의 예 를 보십시오.Example D3B
 
function createMyFunction(myOperator)
{
return new Function("a", "b", "return a" + myOperator + "b;");
}
var add=createMyFunction("+"); // creates "add" function
var subtract=createMyFunction("-"); // creates "subtract" function
var multiply=createMyFunction("*"); // created "multiply" function
// test the functions
alert("result of add="+add(10,2)); // result is 12
alert("result of substract="+subtract(10,2)); // result is 8
alert("result of multiply="+multiply(10,2)); // result is 20
alert(add);
라 는 예 는 비교적 재 미 있 습 니 다.실행 할 때 전달 매개 변수(my Operator)를 통 해 각각 세 개의 서로 다른 Function 대상 을 만 들 수 있 습 니 다.그리고 해석 기 는 createMyFunction 을 설명 하려 고 할 때 return 의'연산 자'가 구체 적 으로 무엇 인지 잘 모 르 기 때문에 설명 할 수 없 기 때문에 성능 이 자 연 스 럽 게 할인 된다.물론 사용자 가 사용자 정의 함 수 를 만 들 수 있 도록 특수 한 용도 가 있 을 때 우 리 는 이러한 함수 설명 방식 을 사용 할 수 있 지만,우 리 는 가능 한 한 이렇게 사용 하 는 것 을 피해 야 한다.

좋은 웹페이지 즐겨찾기