Google
[1536]
 
 
 
 
 
 
 
 
 
 
 
 
¾×¼Ç½ºÅ©¸³Æ®  
 
 
 
 
 
 
 
 
 
 
 

5-7, 5-8ÀåÀ» ÅëÇØ¼­ ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ Å¬·¡½º°£ »ó¼Ó°ú Àº´ÐÀÇ ±¸ÇöÀÌ °¡´ÉÇÏ´Ù¶ó´Â °ÍÀ» ¼Ò°³ÇÏ¿´´Ù. ÇÏÁö¸¸ »ó¼ÓÀÇ °æ¿ì prototype ¼Ó¼ºÀ» »ç¿ëÇÏ¿´±â ¶§¹®¿¡ ÀϹÝÀûÀÎ oop ¾ð¾î¿¡¼­ »ó¼ÓÀ» ±¸ÇöÇÒ¶§¿Í ºñ±³ÇØ ºÃÀ»¶§ ´Ù¼Ò ¾î»öÇÔÀÌ ´À²¸Áú °ÍÀÌ´Ù. µû¶ó¼­ Á»´õ oop ¿¡ °¡±î¿öÁö±â À§ÇÑ ´Ù¸¥ Æí¹ýÀ» ¸ð»öÇØ º¸±â·Î ÇÑ´Ù.

 

³Ý½ºÄÉÀÌÇÁ Ä¿¹Â´ÏÄÉÀ̼ÇÀÇ Bob Clay ´Â ºÎ¸ð Ŭ·¡½ºÀÇ ¸Þ¼Òµå¸¦ ÀÚ½Ä Å¬·¡½º¿¡ º¹»çÇÒ ¼ö ÀÖ´Â ¾ÆÁÖ °£´ÜÇÑ ¸Þ¼Òµå¸¦ ¼Ò°³ÇÏ¿´´Ù.

 

http://devedge-temp.mozilla.org/toolbox/examples/2003/inheritFrom/index_en.html

 

À§ ÆäÀÌÁö¿¡ °¡¸é ¸Þ¼Òµå¿¡ ´ëÇÑ ¼³¸í ¹× »ùÇÿ¹Á¦¸¦ ½ÇÇàÇØ º¼ ¼ö ÀÖ´Ù.

 

function createInheritance(parent, child) {
    var property;
    for(property in parent) {
        if(!child[property]) {
            child[property] = parent[property];
        }
    }
}

 

¹äÀÌ ¼Ò°³ÇÑ ¸Þ¼Òµå´Â À§¿Í °°´Ù. ºÎ¸ð Ŭ·¡½ºÀÇ ¸ðµç ¸â¹ö ¹× ¸Þ¼Òµå°¡ ÀÚ½ÄŬ·¡½º¿¡µµ Á¸ÀçÇÏ´ÂÁö üũÇϰí Á¸ÀçÇÏÁö ¾ÊÀ¸¸é º¹»çÇØÁÖ´Â ¾ÆÁÖ °£´ÜÇÑ ¸Þ¼ÒµåÀÌ´Ù.

 

ÁÖÀÇÇØ¼­ º¼ °ÍÀº ºÎ¸ðŬ·¡½ºÀÇ ¸â¹ö ¹× ¸Þ¼Òµå Áß¿¡¼­ private ÇüÅÂ(»ý¼ºÀھȿ¡¼­ var ·Î ¼±¾ð/5-8Àå ÂüÁ¶)·Î ¼±¾ðµÇ¸é ÀÚ½Ä Å¬·¡½º·Î º¹»çµÇÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. ÇÏÁö¸¸ ÀÚ½ÄŬ·¡½º¿¡´Â ºÎ¸ðÀÇ private ¸â¹öµéÀÌ º¹»çµÇÁö ¾Ê´õ¶óµµ public ÀÇ setter, getter ¸Þ¼Òµå°¡ º¹»çµÉ °ÍÀ̹ǷΠ¾ó¸¶µçÁö ºÎ¸ðÀÇ private ¸â¹ö¿¡ Á¢±ÙÇÒ ¼ö ÀÖ´Ù.

 

À§ ¸Þ¼Òµå¸¦ »ç¿ëÇØ¼­ ºÎ¸ðŬ·¡½ºÀÇ ¸â¹ö±îÁö ÀÚ½ÄŬ·¡½º·Î º¹»çµÇ±â¸¦ ¿øÇѴٸ頾î¿ ¼ö ¾øÀÌ ºÎ¸ðŬ·¡½ºÀÇ private ŸÀÔÀ» public À¸·Î ¼öÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. public À¸·Î ¼öÁ¤ÇÏ·Á¸é ¸Þ¼Òµå ¼±¾ð°ú °°Àº ¹æ¹ýÀÎ this Ű¿öµå¿Í .(dot) À¸·Î ¼±¾ðÇØ ÁÖ¸éµÈ´Ù.(¿¹ : this.wheelCount = 10;)

 

À§ ¸Þ¼Òµå¸¦ Àû¿ëÇÑ ¿¹Á¦¸¦ »ìÆìº¸ÀÚ.


function Vehicle() {
    var wheelCount = 4;
    var curbWeightInPounds = 4000;

    this.getWheelCount = function() {
        return wheelCount;
    }

    this.setWheelCount = function(count) {
        wheelCount = count;
    }

    this.getCurbWeightInPounds = function() {
        return curbWeightInPounds;
    }

    this.setCurbWeightInPounds = function(weight) {
        curbWeightInPounds = weight;
    }

    this.refuel = function() {
        return "Refueling Vehicle with regular 87 octane gasoline";
    }

    this.mainTasks = function() {
        return "Driving to work, school, and the grocery store";
    }
}

function SportsCar() {
    this.refuel = function() {
        return "Refueling SportsCar with premium 94 octane gasoline";
    }

    this.mainTasks = function() {
        return "Spirited driving, looking good, driving to the beach";
    }
}

function CementTruck() {
    this.refuel = function() {
        return "Refueling CementTruck with diesel fuel";
    }

    this.mainTasks = function() {
        return "Arrive at construction site, extend boom, deliver cement";
    }
}

 

<classicalInheritance.js ÀÇ Àüü ¼Ò½ºÄÚµå>

 

ºÎ¸ðÀΠVehicle Ŭ·¡½º¿¡´Â wheelCount ¹× curbWeightInPounds ¸â¹ö°¡ ¸ðµÎ private À¸·Î ¼±¾ðµÇ¾î ÀÖ°í getter ¹× setter ¸Þ¼Òµå´Â public À¸·Î ¼±¾ðµÇ¾îÀÖ´Ù. ÀÚ½ÄÀÎ SportsCar ¿Í CementTruck Ŭ·¡½º¿¡´Â ¸â¹ö°¡ ÀüÇô Á¸ÀçÇÏÁö ¾ÊÀ¸¸ç ´ÜÁö refuel, mainTasks ¸Þ¼Òµå¸¸ override Çϰí ÀÖ´Ù.

 

À§ Ŭ·¡½ºµéÀ» ±âÃÊ·Î ´ÙÀ½°ú °°ÀÌ Å×½ºÆ® Äڵ带 ÀÛ¼ºÇØ º¸ÀÚ.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Classical Inheritance in JavaScript</title>

<script type="text/javascript" src="classicalInheritance.js"></script>

<script type="text/javaScript">
function createInheritance(parent, child) {
    var property;
    for(property in parent) {
        if(!child[property]) {
            child[property] = parent[property];
        }
    }
}
   
   
function describe(vehicle) {
    var description = "";
    description = description + "Number of wheels (via property): " + vehicle.wheelCount;
    description = description + "\n\nNumber of wheels (via accessor): " + vehicle.getWheelCount();
    description = description + "\n\nCurb Weight (via property): " + vehicle.curbWeightInPounds;
    description = description + "\n\nCurb Weight (via accessor): " + vehicle.getCurbWeightInPounds();
    description = description + "\n\nRefueling Method: " + vehicle.refuel();
    description = description + "\n\nMain Tasks: " + vehicle.mainTasks();
    alert(description);
}

function createVehicle() {
    var vehicle = new Vehicle();
    describe(vehicle);
}

function createSportsCar() {
    var sportsCar = new SportsCar();
    createInheritance(new Vehicle(), sportsCar);
    sportsCar.setCurbWeightInPounds(3000);
    describe(sportsCar);
}

function createCementTruck() {
    var cementTruck = new CementTruck();
    createInheritance(new Vehicle(), cementTruck);
    cementTruck.setWheelCount(10);
    cementTruck.setCurbWeightInPounds(10000);
    describe(cementTruck);
}
</script>
</head>

<body>
  <h1>Examples of Classical Inheritance in JavaScript</h1>
 
  <br/><br/>
  <button onclick="createVehicle();">Create an instance of Vehicle</button>
 
  <br/><br/>
  <button onclick="createSportsCar();">Create an instance of SportsCar</button>
 
  <br/><br/>
  <button onclick="createCementTruck();">Create an instance of CementTruck</button>

</body>
</html>

<classicalInheritance.html ÀÇ Àüü ¼Ò½º ÄÚµå>

 

À§ Å×½ºÆ® Äڵ带 ÅëÇØ¼­ ÀÚ¹Ù½ºÅ©¸³Æ® °´Ã¼ÀÇ prototype ¼Ó¼ºÀ» »ç¿ëÇÏÁö ¾Ê°í »ó¼ÓÀ» ¾î¶»°Ô ±¸ÇöÇÒ ¼ö ÀÖ´ÂÁö¿Í Àº´Ð¿¡ ´ëÇØ¼­ º¸´Ù ÀÚ¼¼ÇÏ°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

´ÙÀ½Àº À§ Å×½ºÆ® ÄÚµåÀÇ ½ÇÇà °á°úÀÌ´Ù.

 

 


 

<Vehicle °´Ã¼¿¡ ´ëÇÑ ¸â¹ö ¹× ¸Þ¼Òµå ½ÇÇà°á°ú>

 

 


 

<SportsCar Ŭ·¡½ºÀÇ ¸â¹ö ¹× ¸Þ¼Òµå ½ÇÇà°á°ú>

 

 


 

<CementTruck ÀÇ ¸â¹ö ¹× ¸Þ¼Òµå ½ÇÇà°á°ú>

 

 

À§ ¿¹Á¦´Â ´Ù¿î¹Þ¾Æ Å×½ºÆ® ÇØ º¼ ¼ö ÀÖ´Ù.

 

5Àå¿¡¼­´Â Ajax ¿Í Á÷Á¢ÀûÀ¸·Î °ü·ÃÀÖ´Â °ÍÀº ¾Æ´ÏÁö¸¸ È°¿ë¸¸ Àß ÇÑ´Ù¸é Ajax Developer ·Î½á ½ÇÀü¿¡¼­ Á» ´õ Àç¹ÌÀÖ°í À¯¿ëÇÏ°Ô Ajax ¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

À̰ÍÀ¸·Î 5ÀåÀ» ¸¶¹«¸® ÇÑ´Ù.