JS 30 Built-in
Standard Built-in Object
demo33.html
JS가 기본적으로 가지고 있는 object를 의미함
programming을 하는데 기본적으로 필요한 도구들
내장객체에 대한 이해는 programming의 기본
- JS 내장객체
- Object
- Function
- Array
- String
- Boolean
- Number
- Math
- Date
- RegExp
User-defined object 와 hybrid
내장객체에 사용자정의객체 추가
Array 확장
Array에서 특정한 값을 ramdom하게 추출하기
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));
// random값이 매번 뜸 굳굳굳
//math.random
//0~1까지소수에 '어떤 값'을 곱하고
//그 값을 최대값, 0을 최소값으로 하는 값이 만들어짐
//arr.length 배열의 최대값을 '어떤값'으로 지정
//이 값은 소수임
//Math.floor 0.1=0 0.9=0 1.1=1 / 소수점을 버리고 정수로만듦
//return arr[index]
//위에서 랜덤하게 획득한 index값을 인자로 받아서 return
잘 작동하는 코드를 만들었지만 더 세련된 방법이 있음
이 함수를 배열 객체에 포함시키는 것
그러면 배열에 내장된 method인 것 처럼 기능을 사용할 수 있음
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());
prototype의 확장을 통해서
모든 배열이 공통적으로 가지고 있었으면 하는
어떠한 API를 사용자가 직접 정의할 수 있다는 것은
상당히 강력하고 멋진 일
공통적으로 사용해야하는 logic이 있다면
이런 prototype같은 것을 통해 내장객체를 확장할 수 있고
또 우리가 만든 다른 객체를 확장 할 수도 있다는 사실