Dev/혼자 공부하는 자바 스크립트

06-2 객체의 속성과 메소드 사용하기

Time_rast 2023. 4. 8. 00:00
반응형

▶ 4가지 키워드로 정리하는 핵심 포인트

● 실체가 있는 것 중에서 객체가 아닌 것을 기본 자료형이라고 하며, 숫자, 문자열, 불이 대표적인 예입니다.

● 객체를 기반으로 하는 자료형을 객체 자료형이라고 하며, new 키워들 활용해서 생성합니다.


● 기본 자료형의 승급이란 기본 자료형이 일시적으로 객체 자료형으로 변화하는 것을 의미합니다.

 

● prototype 객체란 객체의 틀을 의미하며, 이곳에 속성과 메소드를 추가하면 해당 객체 전체에서 사용할 수 있습니다.

 

 

 

▶ 확인 문제

1.다음 코드의 실행 결과를 예측해보세요. 예측과 다른 결과가 나온다면 왜 그런지 생각해보세요.

<script>
	const num = 52000
    num.원 = function () {
    	return this.valueOf() + '원'
    }
    
     cosole.log(num.원())
</script>

오류 메시지가 나옵니다. num은 기본 자료형이므로 메소드가 추가되지 않습니다. num과 같은 기 본 자료형은 대응되는 객체 자료형의 프로토타입(prototype 속성)에 메소드를 추가해야 합니다. 

Uncaught TypeError: num.원 is not a function

2.다음 코드의 실행 결과를 예측해보세요

<script>
    function printLang(code) {
    	return printLang._lang[code]
    }

    printLang._lang = {
    	ko: '한국어',
    	en: '영어',
    	ja: '일본어',
    	fr: '프랑스어',
    	es: '스페인어'
    }

    console.log('printLang("ko"):' , printLang('ko'))
    console.log('printLang("en"):' , printLang('en'))


</script>
printLang("ko"):한국어
printLang("en"):영어

3.모질라 문서에서 Math 객체와 관련된 내용을 읽고 사인 90도의 값을 구해보세요. 참고로 사인 90도는 1입니다. 아주 단순하게 생각해서 구현하면 0.8939966636005579라는 결과가 나옵니다. 0.8939966636005579가 나왔다면 왜 그런지, 그리고 이를 어떻게 해야 제대로 사용할 수있는지 구글 검색 등을 활용해서 알아보고 코드를 수정하세요.

<script>
	
</script>

 

4. 다음 중 어떤 종류의 객체들이 모두 공유하는 속성과 메소드를 추가할 때 사용하는 객체의 이름을 골라주세요. 

① classProp
② prototype
③ sample
④ frame

 

5.본문에서는 Lodash 라이브러리의_.sortBy() 메소드를 살펴보았습니다. _. orderBy()메소드도 한번 살펴보고 어떤 형태로 사용해야 하는지 직접 예제를 작성해보세요. 그리고 다음과 같은 배열을 이름( name)으로 오름차순 정렬해주세요.

<script>
const books = [{
            "name": "혼자 공부하는 파이썬",
            "price" : 18000,
            "publisher" : "한빛미디어"
        },{	
            "name": "HTML5 웹 프로그래밍 입문",
            "price" : 26000,
            "publisher" : "한빛아카데미"
		}, {
            "name": "머신러닝 딥러닝 실전 개발 입문",
            "price" : 30000,
            "publisher" : "위키북스"
		}, {
        	"name": "딥러닝을 위한 수학",
            "price" : 25000,
            "publisher" : "위키북스"
		}]

</script>
 

 

반응형