함수 속성 이름

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 JavaScript 를 사용하여 객체의 고유한 열거 가능한 속성에서 함수 속성 이름의 배열을 얻는 방법을 살펴봅니다. 객체의 속성을 반복하고 필요에 따라 상속된 속성을 포함하기 위해 Object.keys()Object.getPrototypeOf()를 사용하는 방법을 배웁니다. 또한 Array.prototype.filter()를 사용하여 함수가 아닌 속성을 필터링합니다.

JavaScript 에서 객체로부터 함수 속성 이름 가져오는 방법

객체에서 함수 속성 이름의 배열을 얻으려면 아래 제공된 functions 함수를 사용하십시오. 이 함수는 선택적으로 상속된 속성도 포함할 수 있습니다.

functions 함수를 사용하는 방법은 다음과 같습니다.

  1. 터미널/SSH 를 열고 node를 입력하여 코딩 연습을 시작합니다.
  2. Object.keys()를 사용하여 객체의 고유한 속성을 반복합니다.
  3. 상속된 속성을 포함하려면 inherited 인수를 true로 설정하고 Object.getPrototypeOf()를 사용하여 객체의 상속된 속성을 가져옵니다.
  4. Array.prototype.filter()를 사용하여 함수인 속성만 유지합니다.
  5. 기본적으로 상속된 속성을 포함하지 않으려면 두 번째 인수 inherited를 생략합니다.
const functions = (obj, inherited = false) =>
  (inherited
    ? [...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))]
    : Object.keys(obj)
  ).filter((key) => typeof obj[key] === "function");

functions 함수의 사용 예는 다음과 같습니다.

function Foo() {
  this.a = () => 1;
  this.b = () => 2;
}
Foo.prototype.c = () => 3;
functions(new Foo()); // ['a', 'b']
functions(new Foo(), true); // ['a', 'b', 'c']

요약

축하합니다! 함수 속성 이름 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.