Enjoy Programming

class static method & freeze() & values() & keys() 본문

JavaScript/Vanilla Js

class static method & freeze() & values() & keys()

LEETAEEON 2021. 6. 14. 13:34

리액트 챌린지 1일차.. 아 순간 벙쪘다...

에러투성이.. 1일부터 이렇다니;;;

내가 클래스에 대해 너무 몰랐던거 같다.. 일단 오늘 클래스에 대해 한가지 알게 된점을 서술하고

몇가지 함수만 기록한다.

 

우선 챌린지 진행을 하는데 주요 골자는 클래스 하나가 선언되어있고 외부에 오브젝트 두개가 있다.

그리고 인스턴스를 만들지 않고 함수를 실행해서 새로운 객체를 만들어주는 것인데..

 

이제껏 인스턴스를 만들어서 함수를 실행하는 것만 해보다 보니 벙쪘다. 한 두시간 헤맨거 같다..

근데 slack의 친절한 도움으로 해결할 수 있었다..

 

mdn을 잘 살펴보자 ㅠㅠ mdn이 최고다.. 독해력이 좀 부족할뿐..

바로 이부분이다... 기존 작성된 코드를 건들지 않고 해야 하다보니 필수로 이용했어야 할 정적메서드 이다.

클래스가 선언되고 클래스안의 메소드를 호출하기위한 방법은 인스턴스를 생성하고 인스턴스로 불러오던가

또는!! 이방법이 있다. 바로 static으로 정적 메소드로 생성하고서 불러주면 인스턴스 없이도 사용가능하다!

 

음 정답 유출 방지를 위해 코드는 공유하면 안되니 이렇게만 적겠다.. 중요한거 하나 배운다.. 이맛에 챌린지 하지..

 

그리고 챌린지는 spread와 rest parameter를 이용해서 새로운 object를 만들어 주었고

이과정에서 destructuring이 이용되었다.

 

그리고 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze

 

Object.freeze() - JavaScript | MDN

Object.freeze() 메서드는 객체를 동결합니다. 동결된 객체는 더 이상 변경될 수 없습니다. 즉, 동결된 객체는 새로운 속성을 추가하거나 존재하는 속성을 제거하는 것을 방지하며 존재하는 속성의

developer.mozilla.org

Object.freeze()함수를 알게 되었는데

객체를 동결하는 함수이다. 왜 동결하느냐~ 변경 불가능하도록 동결하는 것.

전달된 객체와 동일한 객체를 반환하지만 절대 변경이 안된다. (복사해서 반환하는 것이 아닌 그대로 동결해서 반환)

 

한가지 주의 할 점은 호출된 객체만 스스로의 직속 속성에 동결이 되며 만약 그 안에 속성값이 object이면 속성 object는 동결되지 않으며

변경이 가능하다. 한마디로 지만 동결되고 자식 object는 동결되지 않는다.

 

그리고 동결되었는지 확인하려면 Object.isFrozen()함수를 사용해서 확인하면 된다. 동결이면 true아니면 false

 

 

그리고 객체에서 키값과 value만 가져와서 배열로 반환하는 함수를 배웠는데

Object.values()와  Object.keys()이다

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/values

 

Object.values() - JavaScript | MDN

Object.values() 메소드는 전달된 파라미터 객체가 가지는 (열거 가능한) 속성의 값들로 이루어진 배열을 리턴합니다. 이 배열은 for...in 구문과 동일한 순서를 가집니다. (for in 반복문은 프로토타

developer.mozilla.org

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

 

Object.keys() - JavaScript | MDN

The Object.keys() method returns an array of a given object's own enumerable property names, iterated in the same order that a normal loop would.

developer.mozilla.org

 

'JavaScript > Vanilla Js' 카테고리의 다른 글

MediaDevices.getUserMedia()  (0) 2021.06.23
Array.prototype.reduce() &&  (0) 2021.06.15
[ES6] Promises  (0) 2021.06.12
[ES6] For ...of  (0) 2021.06.11
[ES6] rest + spread + destructure  (0) 2021.06.06