最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript工廠方式定義對象

 更新時(shí)間:2014年12月26日 09:29:44   投稿:hebedich  
這篇文章主要介紹了javascript工廠方式定義對象,以及另外3中創(chuàng)建對象的方式,需要的朋友可以參考下

每一個(gè)函數(shù)對象都有一個(gè)length屬性,表示該函數(shù)期望接收的參數(shù)個(gè)數(shù)。

復(fù)制代碼 代碼如下:

<html>
<head>
<script type="text/javascript">
var add =function(num1,num2,num3){
    alert(num1+num2+num3);
}
alert(add.length);
</script>
</head>
<body>
</body>
</html>

關(guān)于js面向?qū)ο蟮膭?chuàng)建方式,

目標(biāo):

構(gòu)建一個(gè)order對象.
包含三個(gè)屬性:日期,金額,提交人 
包含一個(gè)方法:顯示字符串:”XX在XXXX-XX-XX 提交了額度為:XXXX元的訂單"

一 工廠方式

復(fù)制代碼 代碼如下:

         <script type=text/javascript>
              /*
                   工廠方式:通過使用方法返回對象,使用時(shí)不需要通過new生成新對象.
              */
              function createOrder()//也可以構(gòu)建帶參數(shù)的工廠方法,根據(jù)傳入的參數(shù)初始化對象數(shù)據(jù).
              {
                   var order = new Object();
                   order.Date = "1990-1-1";
                   order.Price = "3200";
                   order.Name = "Vince Keny";
                   order.Show = function()//將show方法放在工廠中,則分別為每個(gè)實(shí)例創(chuàng)造一個(gè)Show方法.浪費(fèi)資源是此模式的弊端.
                       {
                            alert(this.Name + " 在 " + this.Date + " 提交了額度為 " + this.Price + " 元的訂單.")
                       }
                   return order;
              }
              //使用工廠模式返回對象:
              var order =  createOrder();
              //也可以這樣使用,把工廠模式改造成"偽構(gòu)造函數(shù)",因?yàn)樵诠S中使用了new,所以創(chuàng)建對象時(shí)的new運(yùn)算符將被忽律.
              var order2 = new createOrder();
              order.Show();
              order2.Show();
         </script>

二 構(gòu)造函數(shù)方式

復(fù)制代碼 代碼如下:

/*
     構(gòu)造函數(shù)方式,方法的聲明與工廠方式一樣,也存在同同樣的問題,同樣可以提取出來.不同點(diǎn)是聲明屬性用this
    并且需要使用new運(yùn)算符生成實(shí)例.
*/
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();

三 原型方式

復(fù)制代碼 代碼如下:

/*
     原型方式:使用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();

四 混合 構(gòu)造函數(shù)/原型 方式

復(fù)制代碼 代碼如下:

/*
     混合構(gòu)造函數(shù)/原型 方式 : 使用構(gòu)造函數(shù)方式初始化屬性字段,使用原型方式構(gòu)造方法.
*/
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();

五 動(dòng)態(tài)混合方式

復(fù)制代碼 代碼如下:

/*
     動(dòng)態(tài)混合方式 : 和混合方式不同點(diǎn)在于聲明方法的位置.將方法生命放到了構(gòu)造函數(shù)內(nèi)部,更符合面向?qū)ο?
*/
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"

相關(guān)文章

最新評論

泸州市| 怀仁县| 茂名市| 普兰店市| 江陵县| 高阳县| 辽中县| 临沂市| 辛集市| 洛浦县| 常宁市| 安顺市| 万宁市| 日土县| 建平县| 绥江县| 彭山县| 含山县| 葵青区| 阜康市| 漳浦县| 樟树市| 徐汇区| 洪湖市| 华池县| 青川县| 安陆市| 商南县| 余江县| 眉山市| 汉源县| 永顺县| 福海县| 安乡县| 镇平县| 嫩江县| 郧西县| 济南市| 安远县| 久治县| 泾川县|