티스토리 뷰
반응형
prototype
function 공격(스킬, 스킬2) {
this.q = 스킬1;
this.w = 스킬2;
}
const 캐릭터1 = new 공격("strike", "snowball");
공격이라는 객체의 prototype을 콘솔창에 입력하면 위와 같이 검색된다.
prototype은 유전자 역할을 한다고 생각하면 됨
공격.prototype.name = "kim";
공격의 prototype에 name을 추가하면
공격(부모)이라는 객체로부터 만들어진 캐릭터1(자식)도 name을 사용할 수 있다.
캐릭터1에 name을 지정한 적이 없지만 부모의 유전자이므로 상속받아서 가져다 쓸 수 있는 것!
const arr = [4, 2, 1];
arr.sort( ); // 1, 2, 4
arr라는 배열에 요소들을 오름차순으로 정렬하고 싶을 때 sort( )라는 메소드를 사용한다.
만든적 없는 메소드를 기본 메소드를 사용할 수 있는 이유는?
부모 유전자에 기록이 되어있기 때문이다
cosnt arr = new Array(1, 2, 4)
배열을 만들 때 new Array 로도 만들 수 있다.
Array라는 부모 유전자에 sort( ), length( ) 등의 기본 메소드가 기록되어있음
실제로 Array의 prototype을 검색해보면 여러가지 메소드들이 있는걸 확인할 수 있다.
만약 모든 Array 자료에서 쓸 수 있는 함수를 추가하고 싶으면?
Array.prototype.함수 = function(){
console.log('함수 만들었다')
}
이렇게 추가도 가능하다.
반응형
'Coding > javascript' 카테고리의 다른 글
객체지향1. Object 생성기계 constructor(생성자) (0) | 2023.07.12 |
---|---|
[javascript] var, let 비교할 수 있는 코드 (0) | 2023.05.02 |
[javascript] 배열 메소드 (추가ing) (0) | 2023.04.19 |
[JavaScript] JavaScript 웹 브라우저 동작 원리 (0) | 2023.04.09 |
[JavaScript] 조건 맞으면 새로운 배열을 만들어주는 array.filter( ) (0) | 2023.03.29 |
댓글