본문 바로가기

JAVASCRIPT

표준 내장 객체의 확장

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

 

자바스크립트가 기본적으로 제공하는 내장객체입니다.

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

자바스크립트가 제공하는 호스트환경은 이거보다 훨씬 많습니다.

 

이런반면에 사용자 정의 객체가 있습니다.(우리가 만든 객체)

 

자바스크립트 가지고있는 내장객체에 우리가 수정해서 사용할수 있습니다.

 

 

예를들어서

 

let 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));

 

 

new Array('seoul','new york','ladarkh','pusan', 'Tsukuba'); 이 객체안에 

index값을 램덤하게 가져오기 위해사 

Math.random() 메소드를 사용합니다.

 

0부터 1사이에 있는 소수를 제공합니다.

 

값 X 0.1,0.2,0.3 등 값이 최대값 소수가 최소값이됩니다.

 

값이 10이고 랜덤값이 0이 최소값 

래덤값이 1이면 10입니다.

 

Math.floor 여기서 floor는 소수를 정수로 바꾸는 메소드입니다.

 

저 예제의 결과값을 보게되면 랜덤하게 생행할때마다 도시가 출력되게 됩니다. 

 

let 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 배열을 만들기 위한 생성자 함수 입니다.

 

ArraT.prototype.random 호출하면 

 

램덤하게 값이 추출되는 메소드를 만들어 봅니다.

 

ArraT.prototype.random = function() {

 

}

let arr = new Array('seoul','new york','ladarkh','pusan', 'Tsukuba');

 

이렇게 배열을 생성하게 되면 Array라는 생성자함수가 실행될때 객체를 만들때 생성자가 가지고있는 prototype 이라는 프로퍼티에 random이라고 하는 메소드를 추가하는 겁니다.

 

ArraT.prototype.random = function() {

  

  let index =math.floor(arr.length*Math.random())

}

let arr = new Array('seoul','new york','ladarkh','pusan', 'Tsukuba');

 

배열생성자로 만들 객체가 random이라고 하는 메소드를 가지고있습니다. 그메소드라는 메소드안에서 this는 무엇을 가르킬까요? 바로  new Array('seoul','new york','ladarkh','pusan', 'Tsukuba');입니다.

 

ArraT.prototype.random = function() {

  

  let index =math.floor(this.length*Math.random())

 return this[index];

}

let arr = new Array('seoul','new york','ladarkh','pusan', 'Tsukuba');

 

이것을 console.log(arr.random()); 실행시키면 실행시킬때마다 도시가 나옵니다.

 

자 이코드를 보면 ArraT.prototype.random 이 랜덤 메소드가 배열과 관련된다라는걸 알수있고 코드의

가독성이 높아집니다. 인자를 받지 않는 다는 것은 사용자가 덜신경 쓸수 있는 장점이 있습니다.

 

우리는 protype확장을 통해서 배열이 가지고 있는 api를 통해서 사용자가 직접 저으이할수 있습니다.

 

 

이 글은 생활코딩을 보고 포스팅 하였습니다. egoing님 감사합니다. 

'JAVASCRIPT' 카테고리의 다른 글

object 확장  (0) 2020.11.17
Object  (0) 2020.11.13
상속 기능의 추가  (0) 2020.11.09
상속 과정편  (0) 2020.11.09
apoly, call 과 this  (0) 2020.11.05