웹/javascript
Javascript Prototype(프로토타입)
SourceTree
2021. 11. 18. 19:55
반응형
Prototype(프로토타입)
- 함수는 생성될때 기본적으로 프로토타입이 만들어짐
- 각 함수의 객체마다 변수가 생성되지 않고 공통적으로 쓰는 값이 필요할때 쓰임
- 함수(==클래스) 고유의 전역변수, 전역함수 라고 보면 됨
함수선언, 객체당 변수가 각각 생성되는 형태
//함수선언(== 클래스선언)
function Person() {
this.eyes = 2;
this.nose = 1;
}
//객체당 변수가 각각 생성
var kim = new Person();
var park = new Person();
console.log(kim.eyes); // => 2
console.log(kim.nose); // => 1
console.log(park.eyes); // => 2
console.log(park.nose); // => 1
프로토타입 사용
//함수선언
function Person() {}
//각 함수는 생성과 동시에 prototype이 만들어짐
Person.prototype.eyes = 2;
Person.prototype.nose = 1;
//객체당 변수 만들어지지 않음!
var kim = new Person();
var park = new Person():
console.log(kim.eyes); // => 2
Object객체 안의 기본 프로토타입(toString())
//Object객체 생성
var obj = {};
var obj = new Object();
//Person은 Object에서 상속받은 객체라고 생각하면 됨
function Person() {} // => 함수
var personObject = new Person(); // => 함수로 객체를 생성
//Prototype Link, Object
function Person() {}
//Prototype Link : Person에 포함된 Object의 toString()실행
console.log(Person.prototype.toString()); // "[object Object]"
//Object의 toString() 프로토타입 재정의
Person.prototype.toString = function() { return 'myToString' }
//Prototype Object : Person의 prototype에 재정의한 toString()실행
console.log(Person.prototype.toString(); // "myToString"
반응형