표준 내장객체의 확장

Joy·2022년 10월 20일
0

JavaScript

목록 보기
12/15

표준 내장객체

  • 자바스크립트가 기본적으로 가지고 있는 객체
  • 프로그래밍을 하는데 기본적으로 필요한 도구 => 내장객체가 중요한 이유

프로그래밍이라는 것은 언어와 호스트 환경에 제공하는 기능들을 통해서 새로운 소프트웨어를 만들어내는 것이기 때문에
내장 객체에 대한 이해는 프로그래밍의 기본이라고 할 수 있다.

자바스크립트 내장객체

  • Object
  • Function
  • Array
  • String
  • Boolean
  • Number
  • Math
  • Date
  • RegExp
    자바스크립트가 동작하는 호스트환경이 제공하는 API는 더 많이 있고 이것을 함께 이용하여 우리가 소프트웨어를 만들게 되는 것이다.
    이 중 우리가 필요한 객체를 직접 만들고 사용할 수 있으며 이런 것을 사용자 정의 객체라고 한다.
    우리는 이 두가지(내장객체, 사용자정의객체)를 섞어 활용하여 사용할 수 있다.

배열의 확장

자바스크립트의 내장 객체 중 배열이라는 것을 확장해보자.

	let arr = new Array('Seoul', 'New York', 'Tokyo', 'Shanghai');
    
    function getRandonFromArray(arr){
    	let index = Math.floor(Math.random() * arr.length); 
        return arr[index];
    }
    console.log(getRandomFromArray(arr));

함수 getRandomFromArray 안의 Math.floor(Math.random() * arr.length)을 주어 Array안에 들어있는 배열들을 랜덤하게 추출할 수 있도록 하였다.
Math.random으로 0이상1미만의 소수들이 랜덤으로 추출되고 arr.length를 곱해 최솟값 0부터 최댓값 4미만의 값의 랜덤 범위를 주었다.
Math.floor로 소수점 이하를 제거하여 0,1,2,3이 나오게 하였다.
결과로 인덱스값에 해당되는 값을 랜덤으로 가져와서 실행시킬 수 있다.

이 코드를 수정하여 함수를 배열 객체에 포함시켜 그 함수가 마치 배열에 내장된 메소드인 것처럼 기능을 사용할 수 있다.

	Array.prototype.random = function(){
    	let index = Math.floor(Math.random() * this.length);
        return this[index];
    }
	let arr = new Array('Seoul', 'New York', 'Tokyo', 'Shanghai');
    console.log(arr.random());

Array생성자 함수의 property(프로퍼티)중 prototype(프로토타입)의 메소드로 random을 추가하였다.
유전자 역할의 prototype을 통해 random메소드를 new생성자를 이용해 만든 Array객체와 연결해 상속시켜 주었다.
여기서 random메소드 안의 this는 new생성자를 이용해 만든 Array객체 자체를 가리키게 된다.

profile
🐣

0개의 댓글