JavaScript 模擬裝飾者模式

/*** 抽象coffee父類,其實可以不用的*/
function Coffee () {}
Coffee.prototype.cost = function() {throw '實現這個方法';
};
/*** 黑咖啡,其實可以不用繼承的;*/
function BlackCoffee () {}
// BlackCoffee.prototype = new Coffee();
// BlackCoffee.prototype.constructor = BlackCoffee;
BlackCoffee.prototype.cost = function() {return 1.99;
};
/*** 糖,其實可以不用繼承的;*/
function Milk (coff) {this.coffee = coff;
}
// Milk.prototype = new Coffee();
// Milk.prototype.constructor = Milk;
Milk.prototype.cost = function() {return this.coffee.cost() + 0.2;
};
/*** 可以開店賣咖啡了;*/
var bc = new BlackCoffee();
var addMilk = new Milk(bc);
console.log(addMilk.cost());

?

轉載于:https://www.cnblogs.com/stono/p/4380499.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375192.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375192.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375192.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

8086算術移位指令SAL和SAR

SAL算術左移指令同邏輯左移指令進行相同動作,機器指令一樣,只是為了方便記憶而提供的兩個助記符 SAR算術右移指令 SAR OPRD,M ;該指令使操作數右移M位,每移動1位左邊的符號保持不變,移出的最低位進入CF mov al,26H ;00100110B 右移1位 00010011B sar al,1 ;26H/2H13H mov a…

const 和readonly

原文:http://www.cnblogs.com/royenhome/archive/2010/05/22/1741592.html 關于 const和readonly修飾符之間的區別,要牽涉到C#中兩種不同的常量類型: 靜態常量(compile-time constants) 和動態常量(runtime constants) 靜態常量是指編譯器在編譯時候會對常量進行解析,并將常量的…

Objective - C 小談:UIPickerView 和 UIDatePicker的基本使用

1.UIPickerView 1.1. UIPickerView的常見屬性 // 數據源(用來告訴UIPickerView有多少列多少行) property(nonatomic,assign) id<UIPickerViewDataSource> dataSource;// 代理(用來告訴UIPickerView每1列的每1行顯示什么內容,監聽UIPickerView的選擇) property(nonatomic,…

8086移位指令

8086有如下3條一般移位指令 SAR OPRD,M ;算術右移 對無符號數和有符號數而言右移1位相當于原數除以2 SHR OPRD,M ;邏輯右移 對無符號數右移1位相當于原數除以2 SHL OPRD,M/SAL OPRD,M ;邏輯/算術左移(兩個助記符只有一個機器指令,進行相同的動作)左移1位相當于原數*2

ADO連接ACCESS數據庫

首先在StdAfx.h中加入 建立連接&#xff1a;(在xxApp文件中) 1 聲明變量 2 建立連接 (1) AfxOleInit 初始化 OLE 為應用程序的支持。 BOOL AFXAPI AfxOleInit( ); 返回值 非零&#xff0c;如果成功;0&#xff0c;如果初始化失敗&#xff0c;可能&#xff0c;因為安裝該 OLE 系…

MySQLdb autocommit的坑

今天寫的一個小功能&#xff0c;里面要用MySQLdb更新數據庫&#xff0c;語句如下 sql "update %s.account_operation set status1 where username%s" % (allResDBInfos[db], username)變量替換后&#xff0c;是下面的樣子 update suspects.account_operation set st…

8086段寄存器

8086有四個段寄存器CS,DS,SS,ES 任意時刻CPU執行CS:IP指向的指令,CS為代碼段寄存器(IP為指令指針寄存器) 任意時刻SS:SP指向棧的棧頂單元,SS為棧段寄存器 我們尋找數據需要知道數據在內存的位置用DS尋址 DS為數據段寄存器 ES為附加段寄存器可作為目的地址的段地址比如ES:DI…

用jquery給元素綁定事件,一些內部細節

按看段代碼&#xff1a; 1 $(.test).on(click, function() { 2 console.log(hello); 3 $(this).removeClass(test); 4 }); 就算是remove掉class test&#xff0c;照樣可以點&#xff0c;事件綁定的是這個對象。 轉載于:https://www.cnblogs.com/lqj12138/p/4384596.html

8086數據寄存器

8086CPU有四個16位數據寄存器可分成8個8位寄存器 AX(AH,AL)|BX(BH,BL)|CX(CH,CL)|DX(DH,DL) 數據寄存器主要用來保存操作數和保存運算結果等 AX 常用作累加器(accumulator)用來保存臨時數據比如MOV AX,DATA將數據段地址送入AX ;MUL BL,DIV BX用來保存乘除法的結果 BX 基(Ba…

使用搜索欄過濾collectionView(按照首字母)

1.解析json數據NSDictionary *citiesDic [CoreJSONSerialization coreJSONSerialization:"cities"];NSDictionary *infor [citiesDic objectForKey:"infor"];NSArray *listItems [infor objectForKey:"listItems"]; 2.存儲數據 for (NSDicti…

《哪來的天才?練習中的平凡與偉大》

這是一本堪稱論述所有偉大成就來源的書中最讓我覺得激動人心、非常棒的一本書。 什么成就了一個那些所謂的天才&#xff1f;刻意練習&#xff01;偉大的成就不是因為所謂天生的基因&#xff0c;也不是所謂簡單的埋頭苦干。而是需要長時間有針對性的刻意提高自己某個方面能力的艱…

8086變址和指針寄存器

SI和DI稱為變址寄存器,在字符串操作中SI作為源指針,DI作為目的指針(ES:DI<--DS:SI) ;用作存儲器指針時可用于尋址 DS:[SI],DS:[BXDI]BP和SP稱為指針寄存器,BP稱為基址針,SP為堆棧指針 ;BP也可作為存儲器指針DS:[bpsi],如果沒有段前綴那么BP最為堆棧基址[BP]尋址的是堆棧內存…

R軟件中 文本分析安裝包 Rjava 和 Rwordseg 傻瓜式安裝方法四部曲

這兩天&#xff0c;由于要做一個文本分析的內容&#xff0c;所以搜索了一天R語言中的可以做文本分析的加載包&#xff0c;但是在安裝包的過程&#xff0c;真是被虐千百遍&#xff0c;總是安裝不成功。特此專門寫一篇博文&#xff0c;把整個心塞史暢快的釋放一下。 ------------…

省賽之路第一天

今天是清明假期第一天&#xff0c;原定的到洛陽玩也成為了虛無縹緲的東東了吧&#xff0c;cb這位還有說的太對了&#xff0c;no game&#xff0c;no girlfriend&#xff0c;no holiday&#xff0c;only maching&#xff01;這都不是什么大事&#xff0c;畢竟自認為還是個肯吃苦…

8086標志寄存器FLAG

8086CPU提供一個特殊的寄存器稱為標志寄存器,里面包含9個標志,用來反映處理器的狀態和運算結果的某些特征。FLAG是按位起作用的

Windows下安裝Python數據庫模塊--MySQLdb

## 1、下載MySQLdb [去官網](http://pypi.python.org/pypi/MySQL-python/) 下載對應的編譯好的版本&#xff08;現在官網最新版本為1.2.5&#xff09;&#xff1a; MySQL-python-1.2.5.win32-py2.7.exe 得到1MB的安裝文件 MySQL-python-1.2.5.win32-py2.7.exe ## 2、安裝 以…

MSSQL-字符串分離與列記錄合并成一行混合使用

一般我們在數據庫的表字段存儲字典Id&#xff0c;如果有多個的話一般是用,或分隔符分隔(12,14),列表顯示的時候是顯示字典名,那如果要在數據庫將字典Id轉成用戶看得懂的字典名&#xff0c;該怎么辦呢&#xff1f; 我們這時候可以結合之前說到的 字符串分離(Split函數) 和 列記錄…

邏輯運算 或,與,非

邏輯變量之間的運算稱為邏輯運算。二進制數1和0在邏輯上可以代表“真”與“假”、“是”與“否”、“有”與“無”。這種具有邏輯屬性的變量就稱為邏輯變量。 計算機的邏輯運算的算術運算的主要區別是&#xff1a;邏輯運算是按位進行的&#xff0c;位與位之間不像加減運算…

Java 理解CPU緩存(CPU Cache)

從Java視角理解系統結構連載, 關注我的微博(鏈接)了解最新動態 眾所周知, CPU是計算機的大腦, 它負責執行程序的指令; 內存負責存數據, 包括程序自身數據. 同樣大家都知道, 內存比CPU慢很多. 其實在30年前, CPU的頻率和內存總線的頻率在同一個級別, 訪問內存只比訪問CPU寄存器慢…

測試指令TEST

測試指令TESTTEST OPRD1,OPRD2 ;按位與操作,但不保存結果,僅影響標志寄存器,根據影響的標志位得到結果 該指令通常用于檢測某些位是否為1,但不改變原操作值.根據ZF得知判斷結果 mov al,01100011B;檢測位6是否為1,如果為1那么ZF0,如果為0那么ZF1 TEST AL,01000000B ;AL010000…