他のオンラインの例を見ましたが、うまくいきませんでした。
そう...
JavaScript で「Head First」の古典的な「Decorator パターン」を実装しようとしています...そして私は本当に近いです。
次の「クラス」が与えられた場合:
// "CLASSES": BEVERAGES
function DarkRoast(){
this.cost = 1.00;
this.description = "Dark Roast";
};
// DECORATORS: CONDIMENTS
function Milk(beverage){
var instance = beverage;
beverage.cost = function(){
return instance.cost + 0.25;
};
beverage.description = functionn(){
return instance.description + ', Milk';
};
};
質問: 次の関数から "Milk" を動的にインスタンス化するにはどうすればよいですか?
function appendCondiment(className, beverage) {
/* Needs to do this, but dynamically:
var instance = new Milk(beverage); */
// This fails (of course)
var instance = new window[className].call(beverage);
}