[전단 100문] Q58: 화살표 함수와 일반 함수(function)의 차이는 무엇입니까?구조 함수(function)는 new를 사용하여 실례를 생성할 수 있습니다. 그러면 화살표 함수는 가능합니까?왜?
앞에 써주세요.
이 시리즈는 개원 프로젝트에서 유래한 것이다. 전단 100문: 80%를 이해할 수 있는 이력서를 저에게 주십시오. 2021 봄 모집에 대비해 매일 한 문제씩 여러 각도에서 답을 정리하도록 독촉합니다. 풍부한 지식 화살표 함수와 일반 함수(function)의 차이점은 무엇입니까?구조 함수(function)는 new를 사용하여 실례를 생성할 수 있습니다. 그러면 화살표 함수는 가능합니까?왜?통합 주소: 프런트엔드 100 질문
본문 대답
화살표 함수는 일반 함수의 약자로 함수를 우아하게 정의할 수 있으며 일반 함수와 비교하면 다음과 같은 몇 가지 차이가 있다.
this
대상은 정의할 때 있는 대상이지 사용할 때 있는 대상이 아니다(정의할 때 있는 작용역의 this
값. JS의 정적 작용역의 메커니즘 때문에 this
일반 변수가 작용역 체인에 결과를 조회하는 것과 같고 정의할 때 있는 대상도 그 대상의 this
값과 같지 않다.arguments
을 사용할 수 없습니다. 이 대상은 함수체에 존재하지 않습니다.를 사용하려면 rest
매개변수로 대체할 수 있습니다.yield
함수로 사용할 수 없습니다.Generator
new
, this
.call
명령이 실행될 때 구조 함수의 apply
값을 새로운 대상의 prototype
function newFunc(father, ...rest) {
var result = {};
result.__proto__ = father.prototype;
var result2 = father.apply(result, rest);
if (
(typeof result2 === "object" || typeof result2 === "function") &&
result2 !== null
) {
return result2;
}
return result;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.