我想扩展AudioBufferSourceNode
类,以便可以多次支持声音的播放。我想同时覆盖构造函数和AudioBufferSourceNode
/ start()
方法,但是我不知道如何以“正确”的方式进行操作,因为它们具有可选参数,并且MDN上未提供所有默认值([ C0],stop()
)。我希望从OOP语言中找到一种更精确的方法签名,以便可以在此基础上进行构建,但是我只能找到本机代码。
那么最正确的方法是什么?
如果您真的想扩展1,则可以这样操作:
2
在每个函数中AudioBufferSourceNode
将是一个包含可选函数参数的数组。我将此数组命名为class MyABSN extends AudioBufferSourceNode {
constructor (context, ...args) {
super(context, ...args);
}
start (...args) {
super.start(...args);
}
stop (...args) {
super.stop(...args);
}
}
的事实只是一个约定。如果愿意,可以选择其他名称。
例如,如果您在类的实例上调用start,例如args
,则args
数组将为myABSN.start(0, 2)
,而args
上的方法将被称为[ 0, 2 ]
。
您可能还想覆盖super
和super.start(0, 2)
方法来跟踪连接。