[Javascript] 객체지향 : 표준 내장 객체의 확장

SJ·2023년 3월 26일
0

Javascript

목록 보기
10/13

표준 내장 객체(Standard Built-in Object)

표준 내장 객체(Standard Built-in Object)는 자바스크립트가 기본적으로 가지고 있는 객체들을 의미한다. 내장 객체가 중요한 이유는 프로그래밍을 하는데 기본적으로 필요한 도구들이기 때문에다. 결국 프로그래밍이라는 것은 언어와 호스트 환경에 제공하는 기능들을 통해서 새로운 소프트웨어를 만들어내는 것이기 때문에 내장 객체에 대한 이해는 프로그래밍의 기본이라고 할 수 있다.

자바스크립트는 아래와 같은 내장 객체를 가지고 있다.

  • Object
  • Function
  • Array
  • String
  • Boolean
  • Number
  • Math
  • Date
  • RegExp

배열을 확장

배열을 확장해보자. 아래 코드는 배열에서 특정한 값을 랜덤하게 추출하는 코드다.

var arr = new Array('seoul','new york','ladarkh','pusan', 'Tsukuba');
function getRandomValueFromArray(haystack){
    var index = Math.floor(haystack.length*Math.random());
    return haystack[index]; 
}
console.log(getRandomValueFromArray(arr));

이렇게 작성해도 된다! 하지만 조금 더 세련된 방법은 이 함수를 배열 객체에 포함시키는 것이다. 그렇게 하면 마치 배열에 내장된 메소드인 것처럼 모든 배열에서 위의 기능을 사용할 수 있다.

Array.prototype.random = function(){
    var index = Math.floor(this.length*Math.random()); // 배열 객체의 내장 메소드로 사용되기 때문에 this가 new Array로 만든 배열 arr가 된다.
    return this[index];
}
var arr = new Array('seoul','new york','ladarkh','pusan', 'Tsukuba');
console.log(arr.random());

random()은 배열 객체의 내장 메소드로 사용되기 때문에 this가 new Array로 만든 배열 arr가 된다. 위처럼 따라서 인자를 따로 받을 필요가 없다. 인자를 따로 받을 필요가 없다는 것은 사용자가 사용할 때 신경써야할 부분이 적다는 뜻이다. 또한 내장된 메소드이기 때문에 위처럼 이름을 특정해 지을 필요 없이 보다 간단하게 지을 수도 있다. 둘 중 어느 방법이 옳다고 말하기는 힘들지만, 필요한 용도대로 사용하면 된다.

출처 : 생활코딩 - Javascript

0개의 댓글