在原始包含对象

时间:2015-12-24 14:01:55

标签: javascript oop this

我有一个用构造函数创建的对象:

var mngr = new Manager();

它有一个属性contacts和一个方法showContacts() { return this.contacts }

我还有一个名为company的另一个对象,它运行一些操作,最后需要使mngr对象运行其showContacts()

我宣布公司并从mngr添加一个方法:

var company = new Company({
    onFinish: mngr.showContacts
});

现在当我从公司对象运行代码时,它执行从onFinish借来的函数mngr.showContacts,因此它在公司的上下文中运行,而不是在mngr。

如何让它在mngr上执行该方法?

我有这些变种:

var company = new Company({
    onFinish: mngr.showContacts.bind(mngr)
});

var company = new Company({
    onFinish: function(){mngr.showContacts()}
});

两者似乎都不完美。

我该怎么做正确的方法?

0 个答案:

没有答案