이름이 지정된 함수는 함수 abs(x){}라는 이름을 명시적으로 부여하는 함수를 나타냅니다. 익명함수란 function(){}처럼 abs와 같은 함수명이 없고 function이라는 키워드만 있는 함수를 말합니다. ES6 표준에는 Arrow Function이라는 새로운 기능이 추가되었습니다. Arrow 함수는 표면적으로 익명 함수와 동일하며 함수 정의를 단순화합니다. 그들 사이의 차이점은 무엇입니까?
1 명명된 함수와 익명 함수의 차이점
차이점: 익명 함수는 다른 변수 let a에 주소를 할당한 다음 명명된 함수가 필요한 동안 a를 사용하여 함수를 호출해야 합니다. 명시적으로 give 함수 이름이 포함되어 있으므로 이 함수 이름을 사용하여 직접 호출할 수 있습니다.
이름이 지정된 함수의 반환 값은 함수 본문의 반환 값입니다. 예를 들어, abs(x) 함수의 반환 값은 숫자 변수입니다. 함수를 호출할 때, abs(6)을 직접 호출하면 이해하기 매우 쉽습니다.
function abs(x){ if(x>=0){ return x; }else{ return -x; } }
그런데 익명 함수는 어떻습니까? 아래와 같이 함수가 함수 이름을 명시적으로 알려주지 않지만, 여기의 abs에는 이 익명 함수의 주소가 할당되어 있으므로 사용 시에는 abs(-3)을 직접 사용할 수 있는 등의 방식이 있습니다.
let abs=function(x){ if(x>=0){ return x; }else{ return -x; } }
2 Arrow Function
ES6 표준에는 Arrow Function이라는 새로운 기능이 추가되었습니다. 애로우 함수라고 불리는 이유는 무엇입니까? 정의가 화살표를 사용하기 때문입니다. 화살표 함수는 표면적으로는 익명 함수와 동일하며 함수 정의를 단순화합니다.
화살표 함수에는 두 가지 형식이 있습니다. 하나는 표현식이 하나만 포함되어 있고 {...}와 return도 생략된다는 것입니다.
x => x * x
위의 화살표 함수는 익명 함수 ""
function (x) { return x * x; }
여러 문을 포함할 수 있는 함수도 있습니다. }를 생략하고 반환:
(x,y) => { if (x > 0) { return x + y; } else { return -x + y; } }
3 화살표 함수와 익명 함수의 차이점
화살표 함수는 익명 함수의 약칭인 것 같습니다. , 그러나 실제로는 화살표 함수와 익명 함수 사이에는 명백한 차이가 있습니다. 화살표 함수 내부의 이는 컨텍스트에 따라 결정되는 어휘 범위입니다.
obj1.getAge(2017) 함수를 호출하고 obj2.getAge(2017) 함수를 호출하면 동일한 결과가 나오나요?
This.birth가 창 또는 정의되지 않음을 가리키는 JavaScript 함수의 잘못된 처리로 인해 obj1의 fn 함수가 예상한 결과를 얻을 수 없습니다.
그러나 obj2 및 fn 함수는 화살표 함수입니다. 이는 항상 외부 호출자 obj2인 어휘 범위를 가리킵니다.
var obj1 = { birth: 1990, getAge: function (year) { let fn=function(y){ return y - this.birth; // this指向window或undefined }; return fn(year); } }; var obj2 = { birth: 1990, getAge: function (year) { var fn = (y) => y - this.birth; // this.birth为1990 return fn(year); } };
4 요약
네임드 함수와 비교하여 익명 함수는 주소를 다른 변수 let a에 할당한 다음 a를 사용하여 to를 사용해야 합니다. 함수를 호출하는 경우 익명 함수와 비교할 때 화살표 함수는 항상 어휘 범위를 가리키는 this의 지정을 완전히 수정합니다.
위 내용은 편집자가 소개한 Javascript의 명명된 익명 화살표 기능의 중요한 차이점입니다. 궁금한 사항이 있으면 메시지를 남겨주시면 편집자가 답변해 드리겠습니다. 당신은 시간에!
Javascript의 명명된 화살표 함수와 익명 화살표 함수의 더 중요한 차이점(권장)에 대해서는 PHP 중국어 웹사이트의 관련 기사에 주목하세요!