function Person() {} // 생성자로 사용할 함수 생성 // Person의 Prototype Object에 속성과 메서드를 정의 한다. Person.prototype.name = "nam"; Person.prototype.age = 33; Person.prototype.sayName = function() { document.write(this.name); }; var person1 = new Person(); document.write("hasOwnProperty() 메소드<br>") document.write(person1.hasOwnProperty("name") + "<br>"); // false name속성이 Prototype에 존재 person1.name = "kim"; // 인스턴스에 name속성 정의 person1.sayName(); // kim document.write("<br>"); document.write(person1.hasOwnProperty("name") + "<br>"); // true name속성이 인스턴스에 존재 delete person1.name; // 인스턴스 name속성 삭제 person1.sayName(); // nam document.write("<br>"); document.write(person1.hasOwnProperty("name") + "<br>"); // false name속성이 Prototype에 존재 document.write("<br>"); document.write("in 연산자 <br>"); document.write("name" in person1) // true name속성이 Prototype에 존재 document.write("<br>"); document.write("job" in person1) // false job 속성은 prototype에도 없고 인스턴스에도 없다. person1.name = "kim"; // 인스턴스에 name속성 정의 document.write("<br>"); document.write("name" in person1); // true name속성이 인스턴스에 존재