当该类调用另一个类Javascript的实例中的方法时,调用类的方法

时间:2017-06-07 19:41:47

标签: javascript oop object

奇怪的问题

我有一个对象,它创建一个类的实例,如下所示:

main = new Main();

Main.proto.setup() {
  ...
  this.sys = new System(args)
  ...
}

对于这个类System,有一个方法setMode,因此可以调用它:

main.sys.setMode(args)
在Main的各个地方调用

setMode。我在Main有一个方法:

Main.proto.update() {
  ...(No args)
}

每次调用setMode时我都想调用它。但是我不想把它放在setMode所谓的任何地方。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以在setMode中创建功能Main,它会调用this.sys.setModethis.update,然后调用此函数而不是直接调用main.sys.setMode

Main.prototype.setMode = function(...args) {
  this.sys.setMode(...args);
  this.update();
}

你也可以像这样覆盖main.sys.setMode方法:

(function(setModeCopy) {
  main.sys.setMode = function(...args) {
    main.update();
    setModeCopy.call(main.sys, ...args);
  }
}(main.sys.setMode));