我有一个用构造函数创建的对象:
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()}
});
两者似乎都不完美。
我该怎么做正确的方法?