javascript - 类的默认方法

标签 javascript node.js ecmascript-6

JS有办法在调用实例时执行默认方法吗?

示例:假设我有以下名为 MyClass 的类,然后我启动了一个名为 foo 的此类实例,我希望在调用 foo 时 执行 MyClassdefault 方法。

class MyClass {
  constructor () {
    this.props = {
        question: 'live, universe, everything',
        answer: 42
    }
  }

  default () {
    return this.props
  }

  hello () {
    return 'hello world'
  }
}
const foo = new MyClass()

// execute the default method
console.log(foo) // log: {question: 'live, universe, everything', answer: 42}

// execute hello method
console.log(foo.hello()) // log: hello world

最佳答案

实例化对象时调用的唯一默认方法是构造函数

在 ES6 中,你可以从构造函数返回任何你想要的,所以下面的代码是有效的:

    class MyClass {
        constructor () {
              var instance = {
                    question: 'live, universe, everything',
                    answer: 42,
                    hello: () => {  return 'hello world' }
              }
              return instance;
        }
     }

然后您可以像这样实例化一个对象:

var foo = new MyClass();
foo.hello(); //Hello world
console.log(foo.question);    //live, universe, everything
console.log(foo.answer);    //42

关于javascript - 类的默认方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36908847/

相关文章:

javascript - 如何测试 Javascript 中的变量是否已初始化?

node.js - 如何测试 NodeJs CLI javascript

javascript - 在 URL 中构造查询参数时,删除 qs.stringify 中具有空值或 null 值的键

javascript getdisplaymedia 以更高分辨率记录

javascript - 仅针对一项功能的策略模式

javascript - 如何在完成后重置计时器组件

javascript - 过滤只能通过 ASP.NET MVC 中的 javascript 过滤的数据库记录列表的最佳方法是什么

javascript - 调用函数之前等待动画完成

javascript - Webpack 通过调用 sockjs-node/info 记录错误 "net::ERR_SSL_PROTOCOL_ERROR"

javascript - ES6 '...' 符号在 jslint 中给出错误?