JavaScript의 세계에는 함수를 정의하는 방법이 여러 가지가 있습니다. 이는 JavaScript의 유연성을 반영하는 것입니다. 그러나 특히 언어 기초가 없는 학생들에게는 초보자가 혼란스러워지는 이유가 바로 여기에 있습니다. 모든 길은 로마로 통한다는 속담처럼, 길이 너무 많으면 여행자는 어느 길이 옳은 길인지 몰라 헤매게 될 것입니다. 하하, 글이 길어요. 그것에 대해 이야기하자면, 먼저 코드를 살펴보겠습니다:
/*두 번째 방법은 Function() 생성자를 사용하여 함수를 복제하는 것입니다.*/
var F = new Function("a","b","alert(a b)");
F(a,b);
은 실제로 다음 코드와 동일합니다.
함수 F(a,b){
경고(a b);
}
/*세 번째 방법은 함수 리터럴을 사용하는 것입니다*/
var zhenne = 함수(){
경고("zhen");
}
젠();
그 중에서 함수를 정의하기 위해 "함수문"과 "함수 리터럴"을 사용하는 방법이 더 일반적이고 이해하기 쉬울 것 같아서 여기서는 자세히 설명하지 않겠습니다. Function() 생성자를 사용하는 복제 함수는 일반적으로 함수가 여러 문으로 구성되기 때문에 거의 사용되지 않습니다. 문자열 형식의 매개 변수로 전달되면 필연적으로 코드 읽기가 어려워집니다.
그나저나 여기서 생성자를 언급하자면, 사실 생성자는 말 그대로 함수인 것 같지만, 사실은 함수 모델일 뿐입니다. 부적절한 예를 들자면 생성자는 새로 조립된 자동차와 같습니다. 멀리서 보든 가까이에서 보든 그것은 여전히 자동차이지만 아직 연료를 공급받지 않았습니다(사용하기 전에 필요한 단계를 나타냄). 그래서 시작할 수 없습니다. 이 자동차가 정상적으로 주행하려면 오일을 추가해야 합니다. 실제로 이 프로세스는 생성자의 인스턴스화와 동일합니다. 그렇지 않으면 자동차가 정상적으로 작동하지 않습니다. 이 예를 보세요: