// Car 생성자 함수의 프로토타입 객체는 new 연산자와 Object 생성자 함수 호출을 통해 생성된 객체이며
// 프로토타입 객체에 constructor 프로퍼티는 자동으로 Car 생성자 함수를 참조한다.
var Car = function(){};

Car.prototype = {
   startEngine : function(){
       document.writeln('시동을 겁니다.
'); }, accelerate : function(){ document.writeln('속도를 올립니다.
'); }, decelerate : function(){ document.writeln('속도를 줄입니다.
'); }, stopEngine : function(){ document.writeln('시동을 끕니다.
'); } }; // Bus 생성자 함수의 프로토타입 객체는 new 연산자와 Object 생성자 함수 호출을 통해 생성된 객체이며, // 프로토타입 객체에 constructor 프로퍼티는 자동으로 Bus 생성자 함수를 참조합니다. var Bus = function(){}; // Bus() 생성자 함수의 prototype 프로퍼티가 new 연산자와 Car() 생성자 함수 호출을 통해 생성된 객체를 참조하면 // Car() 생성자 함수의 프로토타입 멤버를 상속하게 됩니다. Bus.prototype = new Car(); // 프로토타입 객체가 Car() 생성자 함수를 통해 만들어졌기 때문에 constructor 프로퍼티는 // Car() 생성자 함수를 참조하게 됩니다. 따라서 constructor 프로퍼티를 Bus() 생성자 함수로 변경합니다. Bus.prototype.constructor = Bus; Bus.prototype.startNavigation = function(){ document.writeln('네비게이션 안내를 시작합니다.
'); }; Bus.prototype.stopNavigation = function(){ document.writeln('네비게이션 안내를 종료합니다.
'); }; var bus = new Bus(); bus.startEngine(); bus.startNavigation(); bus.accelerate(); bus.decelerate(); bus.stopNavigation(); bus.startEngine(); /* result : 시동을 겁니다. 네비게이션 안내를 시작합니다. 속도를 올립니다. 속도를 줄입니다. 네비게이션 안내를 종료합니다. 시동을 겁니다. */
Posted by 토끼구이 달팽이맛나