引用類型:
引用類型通常叫做類別(class),也就是說,遇到引用值,所處理的就是物件。
JavaScript 內建的物件-String、Array、Number、Object都是參考類型,我們這些使用者建立的物件其實是這些類型的實例在JavaScript物件導向的程式設計過程中引用型別是為了支援'類別'所對應的邏輯出現的。
引用型別由三個部分組成:建構子、方法定義、屬性。
以物件導向的方法編寫的商店結算收銀的POS機系統為例,我們來理解一下引用類型的「三步驟」:
第一步,定義引用類型;
第一步,定義引用類型;
:
Js代碼
function Cart(inputs){
this.inputs=inputs;
);購買商品傳入POS機系統的商品訊息, loadAllItems()是調用本地商品庫中所有商品的 資訊(僅用作說明問題不必深究)*/ 這裡用到了this關鍵字,在構造函數或方法內,this關鍵字表示引用類型的當前物件實例,Java程式碼 this.inputs=inputs; 這行程式碼引用了目前物件實例的inputs屬性,並將其設為參數使用為參數inputs(為客戶購買資料的資訊而行號barcode)。 第二步,建立屬性方法;Js代碼 Cart.prototype.get_item_base_info=function(normal_barcode){p (this.item_info,function(item){ return normal_barcode.indexOf( item.barcode)>=0; }) }//取得條碼對應的商品的資訊 Cart.prototype.add_item_count=function(normal_barCart.prototype.add_item_count=function(normal_barfunction)>
var counts = _.values(_. countBy(normal_barcode)); _.each(item_base_info,function(item){_info
})
return item_base_info
}//移除相同條碼並記錄商品數量
第三步,建立引用類型的實例;
Js代碼
var cart=new Cart(inputs); new關鍵字,不使用new關鍵字所寫程式碼將無法正常運作,而且在實例化之前建構函數及其原型的屬性中的方法都不會執行。實例化之後就可以呼叫建構函式中的原型的方法和輸入的資料了。
Js代碼
var item_base_info=cart.get_item_base_info(normal_barcodes);/*調用實例的獲取條碼對應商品資訊
的方法;normal_barcode 為輸入的條碼對應商品資訊
的方法;normal_barcode 為經過輸入的的可辨識條
碼);*/
var item_count_add=cart.add_item_count(normal_barcodes,item_base_info);/*調用實例的相同方法的移除相同尺寸 var shopping_list=print_shoppinglist(item_count_add);/*print_shoppinglist為商品單價乘數量所的商
品金額的方法;*/