javascript 공장 방식 정의 대상

4888 단어
모든 함수 대상 에 length 속성 이 있 습 니 다. 이 함수 가 원 하 는 매개 변수 개 수 를 표시 합 니 다.
 
  


<br> var add =function(num1,num2,num3){ <br>     alert(num1+num2+num3); <br> } <br> alert(add.length); <br>





js 대상 을 대상 으로 하 는 생 성 방식 에 대하 여
목표:
order 대상 을 만 듭 니 다. 날짜, 금액, 제출 자 세 가지 속성 을 포함 합 니 다.  방법 포함: 문자열 표시: "XX 는 XXXX - XX - XX 에서 XXXX 원 의 주문 서 를 제출 했 습 니 다."
공장 방식
 
  
         <br>               /* <br>                    : , new . <br>               */ <br>               function createOrder()// , . <br>               { <br>                    var order = new Object(); <br>                    order.Date = "1990-1-1"; <br>                    order.Price = "3200"; <br>                    order.Name = "Vince Keny"; <br>                    order.Show = function()// show , Show . . <br>                        { <br>                             alert(this.Name + " " + this.Date + " " + this.Price + " .") <br>                        } <br>                    return order; <br>               } <br>               // : <br>               var order =  createOrder(); <br>               // , " ", new, new . <br>               var order2 = new createOrder(); <br>               order.Show(); <br>               order2.Show(); <br>         

이 구조 함수 방식
 
  
/*
     , , , . this
    new .
*/
function Order()
{
     this.Date = "1990-1-1";
     this.Price = "3200";
     this.Name = "Vince Keny";
     this.Show = function()
         {
              alert(this.Name + " " + this.Date + " " + this.Price + " .")
         }
}
 
var order = new Order();
order.Show();

삼 원형 방식
 
  
/*
     : prototype
*/
function Order()
{}
 
Order.prototype.Date = "1990-1-1";
Order.prototype.Price = "3200";
Order.prototype.Name = "Vince Keny";
Order.prototype.Show = function()
     {
         alert(this.Name + " " + this.Date + " " + this.Price + " .")
     }
var order = new Order();
order.Show();

4 혼합 구조 함수 / 원형 방식
 
  
/*
     / : , .
*/
function Order()
{
     this.Date = "1990-1-1";
     this.Price = "3200";
     this.Name = "Vince Keny";
}
Order.prototype.Show = function().
{
         alert(this.Name + " " + this.Date + " " + this.Price + " .")
}
var order = new Order();
order.Show();

5 동적 혼합 방식
 
  
/*
     : . , .
*/
function Order()
{
     this.Date = "1990-1-1";
     this.Price = "3200";
     this.Name = "Vince Keny";
   
     if(typeof Order._initialized == "undefined")
     {
         Order.prototype.Show = function().
                       {
                            alert(this.Name + " " + this.Date + " " + this.Price + " .")
                       };
         Order._initialized = true;
     }
}

    function Car(sColor,iDoors){
        var oTempCar = new Object;
        oTempCar.color = sColor;
        oTempCar.doors = iDooes;
        oTempCar.showColor = function (){
            alert(this.color)
        };
        return oTempCar;
    }
    var oCar1 = new Car("red",4);
    var oCar2 = new Car("blue",3);
    oCar1.showColor();        //outputs "red"
    oCar2.showColor();        //outputs "blue"

좋은 웹페이지 즐겨찾기