질문 : 자바 스크립트에서 "=>"(같고 큼으로 형성된 화살표)의 의미는 무엇입니까?
>=
연산자는 이상을 의미한다는 것을 알고 있지만 일부 소스 코드에서 =>
그 연산자의 의미는 무엇입니까?
코드는 다음과 같습니다.
promiseTargetFile(fpParams, aSkipPrompt, relatedURI).then(aDialogAccepted => {
if (!aDialogAccepted)
return;
saveAsType = fpParams.saveAsType;
file = fpParams.file;
continueSave();
}).then(null, Components.utils.reportError);
답변
What It Is
이것은 화살표 기능입니다. 화살표 함수는 ECMAscript 6에서 도입 한 짧은 구문으로, 함수 표현식을 사용하는 방식과 유사하게 사용할 수 있습니다. function (foo) {...}
와 같은 표현식 대신 자주 사용할 수 있습니다. 그러나 그들은 몇 가지 중요한 차이점이 있습니다. this
자신의 값을 묶지 않습니다 (토론을 위해 아래 참조).
화살표 함수는 ECMAscript 6 사양의 일부입니다. 아직 모든 브라우저에서 지원되지는 않지만 Node v. 4.0 이상 과 2018 년 현재 사용중인 대부분의 최신 브라우저에서 부분적으로 또는 완전히 지원됩니다. (아래에 지원되는 브라우저의 일부 목록을 포함했습니다).
Mozilla 문서 에서 화살표 기능에 대한 자세한 내용을 읽을 수 있습니다 .
Mozilla 문서에서 :
화살표 함수 표현식 (뚱뚱한 화살표 함수라고도 함)은 함수 표현식에 this
값을 어휘 적으로 바인딩합니다 this
, arguments
, super
또는 new.target
은 바인딩하지 않음). 화살표 함수는 항상 익명입니다. 이러한 함수 식은 메서드가 아닌 함수에 가장 적합하며 생성자로 사용할 수 없습니다.
화살표 기능에서 이 기능이 작동하는 방법에 대한 참고 사항
화살표 기능의 가장 편리한 기능 중 하나는 위의 텍스트에 묻혀 있습니다.
화살표의 기능은 ... 사 전적으로 결합 this
값을 (하지 않습니다 바인드 자신 this
...)
이것이 의미하는 바는 화살표 함수가 this
this
가 없다는 것입니다. 전통적인 기능은 자체에 결합 할 수있다 this
가 정의 및 호출 방법에 따라 값입니다. self = this;
와 같은 많은 체조를 요구할 수 있습니다; 등을 액세스하기 위해 또는 조작 this
다른 함수 내부에서 하나 개의 기능. 이 주제에 대한 자세한 정보 는 Mozilla 문서의 설명 및 예제를 참조하십시오.
Example Code
예 (문서에서도) :
var a = [
"We're up all night 'til the sun",
"We're up all night to get some",
"We're up all night for good fun",
"We're up all night to get lucky"
];
// These two assignments are equivalent:
// Old-school:
var a2 = a.map(function(s){ return s.length });
// ECMAscript 6 using arrow functions
var a3 = a.map( s => s.length );
// both a2 and a3 will be equal to [31, 30, 31, 31]
호환성에 대한 참고 사항
Node에서 화살표 기능을 사용할 수 있지만 브라우저 지원이 불안정합니다.
이 기능에 대한 브라우저 지원은 상당히 개선되었지만 여전히 대부분의 브라우저 기반 사용에 충분하지 않습니다. 2017 년 12 월 12 일 현재 다음 버전에서 지원됩니다.
- Chrome (v. 45 이상)
- Firefox (v. 22 이상)
- Edge (v. 12+)
- Opera (v. 32+)
- Android 브라우저 (v. 47 이상)
- Opera Mobile (v. 33+)
- Android 용 Chrome (v. 47 이상)
- Android 용 Firefox (v. 44 이상)
- Safari (v. 10 이상)
- iOS Safari (v. 10.2 이상)
- 삼성 인터넷 (v. 5+)
- Baidu 브라우저 (v. 7.12 이상)
다음에서 지원되지 않음 :
- IE (v. 11까지)
- Opera Mini (v. 8.0 이상)
- Blackberry Browser (v. 10까지)
- IE Mobile (v. 11까지)
- Android 용 UC 브라우저 (v. 11.4까지)
- QQ (v. 1.2까지)
CanIUse.com (제휴 없음)에서 더 많은 (및 최신) 정보를 찾을 수 있습니다.
출처 : https://stackoverflow.com/questions/24900875/whats-the-meaning-of-an-arrow-formed-from-equals-greater-than-in-javas
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
CSS 만 사용하여 링크를 비활성화하는 방법 (0) | 2021.09.03 |
---|---|
CSS가 가짜 요소와 함께 작동하는 이유 (0) | 2021.09.03 |
JavaScript chop/slice/trim 문자열의 마지막 문자 잘라내기 (0) | 2021.09.02 |
Node.js에서 다른 파일의 함수를 "include" 하는 방법 (0) | 2021.09.02 |
JSLint "missing radix parameter" 오류 (0) | 2021.09.02 |