JavaScript | TypeScript/Javascript 시작하기
[ Javascript ] 프로토타입의 사용 - 2
shiro21
2022. 5. 6. 10:23
반응형
stranger.gender = "female";
console.log(stranger.gender); // female
console.log(shiro.gender); // male
console.log(Person.prototype.gender) // male
이전 'prototype에 정의된 변수를 수정하는 예'에서 구조를 보면 prototype에서 참조하던 gender값이 바뀌는게 아니라, stranger객체에 gender속성이 추가되어 저장되는 것이다. 따라서 stranger에서 gender를 조회하면 'female'을 출력한다. 그리고 'Person.prototype.gender'에 gender값은 그대로 'male'값을 그대로 유지하므로 shiro에서는 그대로 prototype에 있는 gender를 참조하여 'male'을 출력한다.
만약 모든 Person객체에 있는 gender를 공통으로 static변수인 것처럼 바꾸고 싶다면 prototype에 있는 gender를 바꿔주면 된다.
function Person1() {};
Person1.prototype.gender = "male";
var shiro1 = new Person1(),
stranger1 = new Person1();
console.log(shiro1.gender); // male
console.log(stranger1.gender); // male
Person1.prototype.gender = "female";
console.log(shiro1.gender); // female
console.log(stranger1.gender); // female
반응형