JS有办法在调用实例时执行默认方法吗?
示例:假设我有以下名为 MyClass
的类,然后我启动了一个名为 foo
的此类实例,我希望在调用 foo 时
执行 MyClass
的 default
方法。
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/