>  기사  >  웹 프론트엔드  >  내가 최상위 기호에 대해 &#function&# 선언을 선호하는 이유(하지만 더 이상 사용하지 않음)

내가 최상위 기호에 대해 &#function&# 선언을 선호하는 이유(하지만 더 이상 사용하지 않음)

Patricia Arquette
Patricia Arquette원래의
2024-10-24 06:18:02970검색

Why I Prefer

오늘은 화살표 기능을 업무에서만 사용하기로 했습니다.

우리는 공통 ESLint 구성을 가지고 있으며 팀은 모든 프로젝트에서 이 규칙을 통합하기로 결정했습니다.

그리고 솔직히 저는 이 특정 규칙

을 좋아하지 않습니다.

개인적으로는... 적어도 최상위 기호에 대해서는 함수 선언이 더 표현력이 좋다고 느껴집니다.

some-screen-of-my-app.tsx

import {} ...

export function SomeScreen(props: Props) {
  const { myContext } = useMyContext()
  const [state, setState] = useState()

  const doSomething = () => { ... }
  const handleSomething = () => { ... }

  return <>...</>
 }

function SomeInternalComponent() { ... }

제가 컴포넌트를 작성하는 방법은 다음과 같습니다. 함수를 선언하는 것은 소설의 장 제목과 같은 느낌입니다

function Chapter3(storySoFar: Props) {
   // where the Hero meets the Villain
}

하지만 저는 팀의 요구 사항을 이해합니다. 모듈의 원래 작성자에 따라 첫 번째 수준에서 찾을 수 있습니다. const () => {} 또는 함수.

주요 주장은 "화살표 함수가 더 읽기 쉽다"(저는 이에 동의하지 않습니다)

import {} ...

const SomeInternalComponent = () => { ... }

export const SomeScreen = (props: Props) => {
  const { myContext } = useMyContext()
  const [state, setState] = useState()

  const doSomething = () => { ... }
  const handleSomething = () => { ... }

  return <>...</>
 }

내 선호도를 뒷받침할 기술적 이점을 찾으려고 노력했습니다... 내 이익을 위해 균형을 움직이는 괴짜 *피티미니* [ 사소하거나 중요하지 않은 것 ]. 모두 다음 사항에 동의합니다.

  • 클래스 없음(함수만)
  • 글로벌 항목 없음(최신 모듈)
  • 아니요

각각 큰 차이는 없습니다.

세부정보 살펴보기:

const foo = () => { ... }

  • 호이스팅 금지
  • 함수 이름은 변수 이름("foo")에서 파생됩니다
  • foo=...처럼 나중에 덮어쓸 수 없습니다.
  • 프로토타입 객체 foo.prototype을 생성하지 않습니다.
  • 생성자 new foo()로 사용할 수 없습니다.
  • 인수가 없습니다.
  • 이 값은 여기서 함수가 선언된
  • 에 의해 정의됩니다.

함수 foo() { ... }

  • 호이스팅
  • 함수 이름은 obv입니다.
  • foo = ...처럼 덮어쓸 수 있습니다.
  • foo.prototype 객체 프로토타입을 생성합니다.
  • new는 다음과 같이 허용됩니다: new foo()(프로토타입을 연결함)
  • 이 값은 함수가 호출되는 방법에 따라 정의됩니다

결국 나는 최상위 부품의 기능 중 Superior Clarity를 선호하지만 다수의 의지가 승리한다.
농담이야, 적응할게. 통일된 스타일을 사용하면 응집력 있는 코드베이스를 유지하는 데 도움이 됩니다.

???.


읽어주셔서 감사합니다

위 내용은 내가 최상위 기호에 대해 &#function&# 선언을 선호하는 이유(하지만 더 이상 사용하지 않음)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.