我可以使用Object.assign创建“类”吗

达齐克

我目前在这里有这段代码:

let loginWindow = Object.assign({}, EventEmitter.prototype, {
  window: null,
  create: () => {
    // Load LoginWindow Settings
    Settings.get("loginWindowState")
    .then((state) => {
      if (state === undefined) state = {};
      loginWindow.window = new BrowserWindow({
        x: state.x || 0,
        y: state.y || 0,
        width: state.width || 600,
        height: state.height || 700,
        frame: false,
        show: false
      });
      if (_.isEmpty(state)) {
        loginWindow.window.center();
      }
      if (state.maximized) {
        loginWindow.window.maximize();
      }
      loginWindow.window.loadURL(`file://${__dirname}/../views/index.html`);
      loginWindow.window.on('closed', () => { loginWindow.window = null; });
      loginWindow.window.on('ready-to-show', () => loginWindow.window.show());
      loginWindow.window.on('move', rememberWindowState);
      loginWindow.window.on('resize', rememberWindowState);
      loginWindow.window.on('maximize', rememberWindowState);
      loginWindow.window.on('unmaximize', rememberWindowState);
    });
    loginWindow.emit("created");
  },
  close: () => {
    loginWindow.window.close();
  }
});

我正在使用它来控制Electron项目中的窗口,尽管我似乎误解了它的构造。

没有this或至少它在运行时返回undefined,我也不能说

loginWindow.emit("created") 从自身内部进行,但是如果我要创建对象并从外部进行操作,它将很好地工作

我想在创建时使用事件发射器,但是我已经替换了 loginWindow.emit("created");

return Promise.resolve(true);

现在我知道创建它的时间,但是我觉得我应该能够代替它使用事件发射器。

刘易斯

Object.assign确实不是为此目的而设计的。而且,箭头功能,不绑定自己的thisargumentssuper,或new.target这就是它返回undefined给您的情况的原因无论如何,这是我的推荐方法。

let loginWindow = new class extends EventEmitter{
  constructor(){
    super();
    this.window = null;
  }
  create(){
    // Load LoginWindow Settings
    Settings.get("loginWindowState")
    .then((state) => {
      if (state === undefined) state = {};
      loginWindow.window = new BrowserWindow({
        x: state.x || 0,
        y: state.y || 0,
        width: state.width || 600,
        height: state.height || 700,
        frame: false,
        show: false
      });
      if (_.isEmpty(state)) {
        this.window.center();
      }
      if (state.maximized) {
        this.window.maximize();
      }
      this.window.loadURL(`file://${__dirname}/../views/index.html`);
      this.window.on('closed', () => { loginWindow.window = null; });
      this.window.on('ready-to-show', () => loginWindow.window.show());
      this.window.on('move', rememberWindowState);
      this.window.on('resize', rememberWindowState);
      this.window.on('maximize', rememberWindowState);
      this.window.on('unmaximize', rememberWindowState);
    });
    this.emit("created");
  }
  close(){
    this.window.close();
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

我可以使用超类的类工厂静态方法创建子类实例吗?

来自分类Dev

我可以使用assign复制对象的对象吗?

来自分类Dev

我可以使用roslyn和新的.net项目格式在构建时创建类吗?

来自分类Dev

我可以使用父类的方法创建子类的对象吗

来自分类Dev

我可以使用父类的方法创建子类的对象吗

来自分类Dev

我可以使用类在 DOM 中创建/放置元素吗?

来自分类Dev

我可以使用其他类的静态方法吗?

来自分类Dev

我可以使用类覆盖CSS #ID吗?

来自分类Dev

我们可以使用类作为标题吗

来自分类Dev

我可以使用Writer类生成xlsx文件吗?

来自分类Dev

我可以使用LinqPad创建的DbContext吗?

来自分类Dev

我可以使用MySQL Workbench创建MariaDB吗?

来自分类Dev

我可以使用lxml创建此XML文件吗?

来自分类Dev

我可以使用FactoryGirl创建无效值吗?

来自分类Dev

我可以使用内联操作按钮创建DataTable吗?

来自分类Dev

我可以使用简单的Int创建结构的实例吗?

来自分类Dev

我可以使用标准JavaScript函数创建XMLHttpRequest吗?

来自分类Dev

我可以使用Openssl创建DKIM密钥吗

来自分类Dev

我可以使用Terraform创建GCP API密钥吗?

来自分类Dev

我可以使用flutter在Firestore上创建索引吗?

来自分类Dev

我可以使用SVG创建书法外观吗?

来自分类Dev

我可以使用MySQL Workbench创建数据吗?

来自分类Dev

我可以使用PhoneGap创建和提交iBook吗

来自分类Dev

我可以使用“相对”变量创建HashMap吗?

来自分类Dev

我可以使用ReactTransitionGroup在更新时创建过渡吗?

来自分类Dev

我可以使用 Flexbox 创建背景和前景吗?

来自分类Dev

我可以使用 '?P=pagename' 创建 PHP 页面吗?

来自分类Dev

我可以使用python CSP吗?

来自分类Dev

我可以使用迭代器吗?

Related 相关文章

  1. 1

    我可以使用超类的类工厂静态方法创建子类实例吗?

  2. 2

    我可以使用assign复制对象的对象吗?

  3. 3

    我可以使用roslyn和新的.net项目格式在构建时创建类吗?

  4. 4

    我可以使用父类的方法创建子类的对象吗

  5. 5

    我可以使用父类的方法创建子类的对象吗

  6. 6

    我可以使用类在 DOM 中创建/放置元素吗?

  7. 7

    我可以使用其他类的静态方法吗?

  8. 8

    我可以使用类覆盖CSS #ID吗?

  9. 9

    我们可以使用类作为标题吗

  10. 10

    我可以使用Writer类生成xlsx文件吗?

  11. 11

    我可以使用LinqPad创建的DbContext吗?

  12. 12

    我可以使用MySQL Workbench创建MariaDB吗?

  13. 13

    我可以使用lxml创建此XML文件吗?

  14. 14

    我可以使用FactoryGirl创建无效值吗?

  15. 15

    我可以使用内联操作按钮创建DataTable吗?

  16. 16

    我可以使用简单的Int创建结构的实例吗?

  17. 17

    我可以使用标准JavaScript函数创建XMLHttpRequest吗?

  18. 18

    我可以使用Openssl创建DKIM密钥吗

  19. 19

    我可以使用Terraform创建GCP API密钥吗?

  20. 20

    我可以使用flutter在Firestore上创建索引吗?

  21. 21

    我可以使用SVG创建书法外观吗?

  22. 22

    我可以使用MySQL Workbench创建数据吗?

  23. 23

    我可以使用PhoneGap创建和提交iBook吗

  24. 24

    我可以使用“相对”变量创建HashMap吗?

  25. 25

    我可以使用ReactTransitionGroup在更新时创建过渡吗?

  26. 26

    我可以使用 Flexbox 创建背景和前景吗?

  27. 27

    我可以使用 '?P=pagename' 创建 PHP 页面吗?

  28. 28

    我可以使用python CSP吗?

  29. 29

    我可以使用迭代器吗?

热门标签

归档