js 사용자 정의 함수 작성 방법: 1. "함수 함수 이름([args]) {code}"; 2. "var 함수 이름 = 새 함수(p1, p2, ..., pn, body);"; 3. "함수([인수]){코드}".
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
JavaScript에서 함수를 사용자 정의하는 방법에는 세 가지가 있습니다. 즉, 함수 문 사용, Function() 생성자 사용, 함수 리터럴 정의입니다.
함수 선언
JavaScript에서는 function 문을 사용하여 함수를 선언할 수 있습니다. 구체적인 사용법은 다음과 같습니다.
function funName([args]) { statements }
funName은 함수 이름이며, 변수 이름과 마찬가지로 합법적인 JavaScript 식별자여야 합니다. 함수 이름 뒤에는 괄호로 묶이고 쉼표로 구분된 매개변수 목록이 있습니다. 매개변수는 선택사항이며 개수에는 제한이 없습니다.
식별자로서 매개변수는 함수 본문 내에서만 액세스되며 매개변수는 함수 범위의 전용 멤버입니다. 함수를 호출할 때 함수에 값을 전달한 다음 매개변수를 사용하여 외부에서 전달된 값을 얻고 함수 본문 내에서 함수 실행에 개입합니다.
괄호 뒤는 중괄호입니다. 중괄호 안에 포함된 문장이 함수 본문 구조의 주요 내용입니다. 함수 본문에서 중괄호는 필수입니다. 중괄호가 없으면 JavaScript는 구문 오류를 발생시킵니다.
예
함수 명령문에는 함수 이름, 괄호, 중괄호가 포함되어야 하며, 기타 코드는 생략 가능하므로 가장 간단한 함수 본문은 빈 함수입니다.
function funName() {} //空函数
익명 함수를 사용하는 경우 함수 이름을 생략할 수 있습니다.
function () {} //匿名空函数
var 문과 function 문은 모두 선언 문입니다. 선언된 변수와 함수는 JavaScript가 미리 컴파일될 때 구문 분석되며, 이를 변수 승격 및 함수 승격이라고도 합니다. 사전 컴파일 기간 동안 JavaScript 엔진은 각 함수에 대한 컨텍스트를 생성하고, 변수 개체를 정의하고, 함수의 모든 형식 매개변수, 전용 변수 및 중첩 함수를 변수 개체의 속성으로 등록합니다.
Function() 생성자
Function() 생성자를 사용하면 함수를 빠르게 생성할 수 있습니다. 구체적인 사용법은 다음과 같습니다.
var funName = new Function(p1, p2, ..., pn, body);
Function()의 매개변수 유형은 모두 문자열이며, p1~pn은 생성된 함수의 매개변수 이름 목록을 나타내고, body는 생성된 함수의 함수 구조 문을 나타내며, body 문은 다음과 같습니다. 세미콜론으로 구분됩니다.
예제 1
모든 매개변수를 생략하고 문자열만 전달하여 함수 본문을 나타낼 수 있습니다.
var f = new Function ("a", "b", "return a+b"); //通过构造函数来克隆函数结构
위 코드에서 f는 생성된 함수의 이름입니다. 동일한 함수를 정의하고, 동일한 구조의 함수를 function문을 이용하여 설계할 수 있습니다.
function f(a, b) { //使用function语句定义函数结构 return a + b; }
예제 2
Function() 생성자를 사용하여 매개변수를 지정하지 않고 빈 함수 구조를 만듭니다.
var f = new Function(); //定义空函数
Function() 생성자를 사용하면 함수 문에서 미리 선언한 함수 본문으로 사용자를 제한하지 않습니다. Function() 생성자를 사용하면 함수를 구조가 아닌 표현식으로 사용할 수 있으므로 더 유연하게 사용할 수 있습니다. 단점은 Function() 생성자가 실행 중에 컴파일되고 실행 효율성이 매우 낮으며 일반적으로 사용이 권장되지 않는다는 것입니다.
익명 함수(함수 리터럴)
함수 리터럴은 익명 함수라고도 합니다. 즉, 함수에는 함수 이름이 없고 함수 키워드, 매개변수 및 함수 본문만 포함됩니다. 구체적인 사용법은 다음과 같습니다.
function ([args]) { statements }
예제 1
다음 코드는 함수 리터럴을 정의합니다.
function (a, b) { //函数直接量 return a + b; }
위 코드에서 함수 리터럴은 기본적으로 함수 구문을 사용하여 함수 구조를 정의하는 것과 동일하며 해당 구조는 고정되어 있습니다. 그러나 함수 리터럴은 함수 이름을 지정하지 않고 function 키워드를 직접 사용하여 함수의 구조를 나타냅니다.
예제 2
익명 함수는 함수 구조의 문이 아닌 표현식, 즉 함수 표현식입니다. 다음으로 익명 함수를 변수 f에 값으로 할당합니다.
//把函数作为一个值直接赋值给变量 f var f = function (a, b) { return a + b; };
함수 구조가 변수에 값으로 할당되면 변수는 함수로 호출될 수 있으며 변수는 익명 함수를 가리킵니다.
console.log(f(1,2)); //返回值3
예제 3
익명 함수는 값 역할을 하며 보다 복잡한 표현 연산에 참여할 수 있습니다. 위의 예에서는 다음 코드를 사용하여 함수 정의 및 호출의 통합 작업을 완료할 수 있습니다.
console.log( //把函数作为一个操作数进行调用 (function (a,b) { return a + b; })(1, 2)); //返回数值3
【관련 추천: javascript 학습 튜토리얼】
위 내용은 JavaScript 사용자 정의 함수를 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!