Programming/JavaScript

표준 내장 객체의 확장

잇나우 2019. 12. 23. 13:03
반응형

표준 내장 객체(Standard Built-in Object)란 자바스크립트가 기본적으로 가지고 있는 객체를 말한다. 

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

자바스크립트 내장 객체는 이렇게 몇가지 안되지만 사용하는 호스트 환경에서 제공하는 내장 객체들도 있어 실질적으론 더 많아진다.

 

배열을 확장

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

함수는 혼자서도 존재할 수 있기 때문에 함수의 이름만 보고 어떤 용도의 함수인지 알아 볼 수 있게 해야한다. 위 코드는 배열에서 특정한 값을 랜덤하게 나오게 하는 코드이다. 이렇게 작성을해도 되지만 조금 더 세련되게 할 수 있다.

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

위위 코드의 Array라는 생성자를 확장시켜서 모든배열이 배열이 가지고 있는 어떤 특정한 값을 랜덤하게 획득하게 할 수있는 기능을 모든 배열의 객체가 가질수있도록 코드를 변경한것. 모든배열에게 적용을 해야하니까 Array라는 배열을 만들기 위한 생성자 함수의 prototype프로퍼티에 접근하여 메소드를 주는것이다. Array 생성자를 통해 만들어진 객체가 random이란 메소드를 prototype으로 인해 가지고 있는데 그 메소드 안에서 this는 만들어진 객체 자체를 가리키게 된다.

반응형

'Programming > JavaScript' 카테고리의 다른 글

데이터 타입  (0) 2019.12.23
Object  (0) 2019.12.23
Prototype  (0) 2019.12.22
상속(inheritance)  (0) 2019.12.21
this  (0) 2019.12.20