创建对象后的 JavaScript 函数

标签 javascript javascript-objects

我有一个上下文函数类型,定义如下:

var Context = function () {

    this.run = function () {
        method1();
        method2();
    }

    var method1 = function () {
    }
}

正如定义中明确指出的,method2 并未在上下文中定义。我需要 Context 的每个实例都传递此方法的实现。

var c = new Context();

// This does not work! because the call in run() function 
// is not this.method2();

c.method2 = function () {
    alert("injected method2");
};

c.run();

我需要将 method2() 保持在 run 状态,而不使用 this 对象,即 this.method2();

有什么解决办法吗?

最佳答案

如果您可以在创建Context之前定义method2,那么它将没有问题:

function method2() {
  alert(2);
}

var c = new Context();
c.run();

关于创建对象后的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42121135/

相关文章:

javascript - 使用字符串值访问 javascript 对象

javascript - 私有(private)JS函数,这有什么问题吗?

javascript - 如何在 HTML5 移动设备中为日期字段打开日历?

javascript - 如何使用相同的原型(prototype)继承javascript oops中的公共(public)属性?

javascript - css 选择器问题,如何在子 ul 聚焦时更改父 li 的字体颜色

javascript - 如何从 javascript 运行 <script src= > 标签

javascript - 如何遍历对象中所有唯一的条目对?

javascript - 通过给定键将两个对象数组合并为一个并复制其他值

javascript - 在 DropDown 中使用 TempData 值时出错

javascript - 在 JavaScript 中访问 iPhone 6 气压计