JavaScript 함수 대상 (클래스)
2756 단어 JavaScript
자바 스 크 립 트 의 가장 흥미 로 운 것 은 함수 가 사실상 기능 이 완전한 대상 일 수도 있다.
Function 클래스 는 개발 자가 정의 하 는 모든 함 수 를 나 타 낼 수 있 습 니 다.
Function 클래스 로 함 수 를 직접 만 드 는 문법 은 다음 과 같 습 니 다.
var function_name = new function(arg1, arg2, ..., argN, function_body)
위의 형식 에서 하나하나 arg 모두 하나의 매개 변수 이 고 마지막 매개 변 수 는 함수 주체 (실행 할 코드) 입 니 다.이 매개 변 수 는 문자열 이 어야 합 니 다.
아래 함수 기억 나 세 요?
function sayHi(sName, sMessage) {
alert("Hello " + sName + sMessage);
}
이렇게 정의 할 수 있 습 니 다.
var sayHi
=
new Function("sName", "sMessage", "alert(\"Hello \" + sName + sMessage);");
문자열 의 관계 로 인해 이런 형식 은 쓰기 가 어렵 지만 함 수 를 이해 하 는 데 도움 이 되 는 것 은 인용 유형 에 불과 하 다. 그들의 행 위 는 Function 류 로 명확 하 게 만 든 함수 행위 와 같다.
아래 의 이 예 를 보십시오.
function doAdd(iNum) {
alert(iNum + 20);
}
function doAdd(iNum) {
alert(iNum + 10);
}
doAdd(10); // "20"
알다 시 피 두 번 째 함 수 는 첫 번 째 함 수 를 다시 불 러 와 doAdd (10) 로 하여 금 '30' 이 아니 라 '20' 을 출력 하 게 합 니 다.
다음 형식 으로 이 코드 블록 을 다시 쓰 면 이 개념 은 분명 하 다.
var doAdd = new Function("iNum", "alert(iNum + 20)");
var doAdd = new Function("iNum", "alert(iNum + 10)");
doAdd(10);
이 코드 를 살 펴 보 세 요. doAdd 의 값 이 서로 다른 대상 을 가리 키 는 지침 으로 바 뀌 었 음 이 분명 합 니 다.함수 명 은 함수 대상 을 가리 키 는 인용 값 일 뿐 행동 은 다른 대상 과 같 습 니 다.심지어 두 변 수 를 같은 함수 로 가리 킬 수 있 습 니 다.
var doAdd = new Function("iNum", "alert(iNum + 10)");
var alsodoAdd = doAdd;
doAdd(10); // "20"
alsodoAdd(10); // "20"
여기 서 변수 doAdd 는 함수 로 정의 되 고 alsodoAdd 는 같은 함 수 를 가리 키 는 지침 으로 밝 혀 집 니 다.이 두 변 수 를 사용 하면 이 함수 의 코드 를 실행 하고 같은 결 과 를 출력 할 수 있 습 니 다 - "20".따라서 함수 명 이 함수 의 변 수 를 가리 키 는 것 이 라면 함 수 를 매개 변수 로 다른 함수 에 전달 할 수 있 습 니까?대답 은 긍정!
function callAnotherFunc(fnFunction, vArgument) {
fnFunction(vArgument);
}
var doAdd = new Function("iNum", "alert(iNum + 10)");
callAnotherFunc(doAdd, 10); // "20"
위의 예 에서 callAnotherFunc () 는 호출 할 함수 와 이 함수 에 전달 할 인자 가 두 개 있 습 니 다.이 코드 는 doAdd () 를 callAnotherFunc () 함수 에 전달 합 니 다. 매개 변 수 는 10 이 고 '20' 을 출력 합 니 다.
메모: Function 구조 함 수 를 사용 하여 함 수 를 만 들 수 있 지만 사용 하지 않 는 것 이 좋 습 니 다. 함 수 를 정의 하 는 것 이 전통 적 인 방식 보다 훨씬 느 리 기 때 문 입 니 다.그러나 모든 함 수 는 Function 류 의 인 스 턴 스 로 봐 야 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.