자바스크립트2013. 2. 8. 15:56

1.  객체의 인스턴스를 생성 후 프로토타입을 추가해도 모든 인스턴스에 적용이 된다 

2. 객체에 프로토타입 객체 대체

 

var msg4 = ""; 

function Person4(name)

{

    this.name = name; 

}

  

Person4.prototype.getName = function(){ return this.name ;}; 

var mySon = new Person4('달봉이');

 

// 1.  객체의 인스턴스를 생성 후 프로토타입을 추가해도 모든 인스턴스에 적용이 된다 

Person4.prototype.nickName = '별명';

Person4.prototype.age = 6;      // Person4.age 안됨 


msg4 += "\n mySon.nickName=" + mySon.nickName  // 별명


mySon.nickName = '달봉이 별명';

msg4 += "\n mySon.nickName=" + mySon.nickName  // 달봉이 별명 

msg4 += "\n mySon.age=" + mySon.age             // 6 


mySon.age = 66;

msg4 += "\n mySon.age=" + mySon.age             // 66 


Person4.prototype.age = 6;  

msg4 += "\n mySon.age=" + mySon.age             // 66 (처음이 아니기 때문에 )

msg4 += "\n mySon.getName()=" + mySon.getName();// 달봉이


delete Person4.prototype.age;

msg4 += "\n delete Person4.prototype.age=" + Person4.prototype.age; // undefined 

msg4 += "\n mySon.age=" + mySon.age


 

msg4 += "\n\n 프로토타입 객체 대체 전 ";

for ( var item in mySon){

    msg4 += "\n mySon[" + item + "] = " + mySon[item];

}



// mySon[name] = 달봉이

// mySon[nickName] = 달봉이 별명

// mySon[age] = 66

// mySon[getName] = function (){ return this.name ;}


var personProto = {};

personProto.specises    = "human";

personProto.countOfLegs = 2;


Person4.prototype = personProto; // 기존에 추가했던 prototype은 삭제된다 


// 2. 객체에 프로토타입 객체 대체

msg4 += "\n\n 프로토타입 객체 대체 후 ";

for ( var item in mySon){

    msg4 += "\n mySon[" + item + "] = " + mySon[item];

}

                        

// mySon[name] = 달봉이       

// mySon[nickName] = 달봉이 별명

// mySon[age] = 66         var t5 = new Person4('t5');

// mySon[getName] = function (){ return this.name ;}var ar5 = [];

var t5 = new Person4('t5');

for ( var item in t5){

   msg4 += "\n t5[" + item + "] = " + t5[item];

}                                 


// t5[name] = t5

// t5[specises] = human

// t5[countOfLegs] = 2

 


for ( var item in Person4.prototype){

    msg4 += "\n Person4.prototype item = " +  item;

// Person4.prototype item = specises

// Person4.prototype item = countOfLegs

Posted by 선한열심