"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 함수 매개변수의 구조분해

함수 매개변수의 구조분해

2024-11-08에 게시됨
검색:568

Destructuring in function parameters

three.js에 프로젝트가 있고 일부 도형이 필요하다고 가정해 보겠습니다. x, y, z 값과 너비, 높이 및 깊이 값이지만 이 배열은 서버 또는 타사 API에서 올 수 있습니다. =>

const geometriesRaw = [
    {
      color: 0x44aa88,
      x: 0,
      y: 1,
      z: 0,
      width: 1,
      height: 1,
      depth: 1
    },
    {
      color: 0x8844aa,
      x: -2,
      y: 1,
      z: 0,
      width: 1.5,
      height: 1.5,
      depth: 1.5
    }

  ];

그런 다음 배열을 사용하여 렌더링하겠습니다. 지도 기능 =>

  const cubes = geometriesRaw.map((cube)=>{
    
  }) 

매번 인수 큐브를 반복하는 이 코드의 장황함을 한눈에 알 수 있습니다.
또 다른 위험 신호는 배열에서 어떤 속성을 사용하고 있는지 명확하지 않다는 것입니다. 예를 들어 z는 두 경우 모두 0이고 대부분의 경우 아마도 0일 것입니다.
일반적인 사용 사례에서는 이 속성을 함수에 노출하면 안 됩니다. 이는 깊이 속성에서도 자주 발생할 수 있습니다.

이러한 이유로 가장 좋은 옵션은 다음과 같이 객체 배열에서 오는 속성을 분해하는 것입니다. =>

 const cubes = geometriesRaw.map(({x,y, width, color})=>{
    
  }) 

이제 x,y, 너비, 색상만 사용하고 있습니다. 이런 식으로 우리는 z, 높이 및 깊이가 함수 내부의 기본 속성이며 서버나 타사에서 오는 데이터에서 필요하지 않음을 암시합니다

이 방법으로 우리는 큐브의 상수와 상호 작용할 향후 개발자를 위해 속성을 숨기고 외부 소스에서 필요한 속성과 더 나은 연습을 위해 기본값으로 설정하는 속성을 표시할 뿐입니다.
const z = 0
...
더 명확하게 만들기 위해 함수 내부에서

릴리스 선언문 이 글은 https://dev.to/kevincoto/destructuring-in-function-parameters-5gkb?1에서 복제됩니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3