国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript工廠方式定義對象

2024-05-06 16:12:54
字體:
供稿:網(wǎng)友
這篇文章主要介紹了javascript工廠方式定義對象,以及另外3中創(chuàng)建對象的方式,需要的朋友可以參考下
 
 

每一個函數(shù)對象都有一個length屬性,表示該函數(shù)期望接收的參數(shù)個數(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)建一個order對象.
包含三個屬性:日期,金額,提交人  
包含一個方法:顯示字符串:”XX在XXXX-XX-XX 提交了額度為:XXXX元的訂單"

一 工廠方式

 

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

         <script type=text/javascript>
              /*
                   工廠方式:通過使用方法返回對象,使用時不需要通過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方法放在工廠中,則分別為每個實例創(chuàng)造一個Show方法.浪費資源是此模式的弊端.
                       {
                            alert(this.Name + " 在 " + this.Date + " 提交了額度為 " + this.Price + " 元的訂單.")
                       }
                   return order;
              }
              //使用工廠模式返回對象:
              var order =  createOrder();
              //也可以這樣使用,把工廠模式改造成"偽構(gòu)造函數(shù)",因為在工廠中使用了new,所以創(chuàng)建對象時的new運算符將被忽律.
              var order2 = new createOrder();
              order.Show();
              order2.Show();
         </script>

 

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

 

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

/*
     構(gòu)造函數(shù)方式,方法的聲明與工廠方式一樣,也存在同同樣的問題,同樣可以提取出來.不同點是聲明屬性用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();

 

三 原型方式

 

復(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();

 

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

 

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

/*
     動態(tài)混合方式 : 和混合方式不同點在于聲明方法的位置.將方法生命放到了構(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"


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 滁州市| 景谷| 元谋县| 松江区| 临猗县| 榆树市| 上栗县| 丰台区| 陵水| 虎林市| 仁怀市| 平遥县| 临沂市| 潍坊市| 绵竹市| 嘉荫县| 夏津县| 新绛县| 林西县| 义乌市| 朝阳市| 安多县| 凤翔县| 鄂伦春自治旗| 柞水县| 阿拉善右旗| 平顶山市| 抚松县| 松滋市| 道真| 清流县| 满洲里市| 双牌县| 法库县| 龙岩市| 吕梁市| 深州市| 韶关市| 贵德县| 赣州市| 唐海县|