javascript - JavaScript 中的动态实例化

标签 javascript asp.net

我查看了其他在线示例,但它们不起作用。

所以...

我正在尝试在 JavaScript 中实现“Head First”中的经典“装饰器模式”...而且我真的很接近。

鉴于以下“类别”:

// "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);
}

最佳答案

您需要:

var instance = new window[className](beverage);

关于javascript - JavaScript 中的动态实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026217/

相关文章:

javascript - 读取不受我们控制的其他网站 cookie

c# - 无法在 asp.net 中编辑文本框

c# - 在 ASP.NET 问题中使用 jQuery AjaxForm

javascript - 如何将 2 行与 html 表格中的 2 行合并在一起?

javascript - 单击页面加载时的按钮元素

javascript - 在 reducer 中未触发 redux-toolkit 操作

asp.net - ASP.NET 中的静态变量

javascript - React js 中将类组件重构为函数组件

javascript - 我无法理解 Aurelia 架构

javascript - table.columns 不是 datatable.js 中的函数