使用Web Audio API在对象内进行非法调用

时间:2013-09-19 19:09:23

标签: javascript html5 oop

所以我在Chrome中遇到了一个可怕的非法调用错误。我正在使用Web Audio API(HTML5非常棒),以构建音频效果和信号路由的框架。基本上它会根据数组中的位置自动路由节点。但是我为复杂的效果或模块包含了我自己的类/对象。它们中有多个节点,并且可以将其中的内容视为单个输入/输出节点。

无论如何,当创建对象时,它会在节点创建时(模块中的私有)抛出错误。我已经通过控制台了解了这种情况,或者丢失了固有的“这个”。但我不知道为什么它在这里发生,因为获取节点构造函数的变量是一个全局变量。有什么想法吗?

var context, nodes;

var Delay = function(_context, _time, _feedback, _wet) {
   this.type = "Delay";

   this.delay = new context.createDelayNode(); //Console points error here.
   this.feedback = new context.createGainNode();
   this.crossfade = new context.createGain();        
}

function GotStream(stream) {
   context = new AudioContext();
   nodes = [ new Delay(1,1,1) ]; //Start point of error
   ...
}

显然它被剥离了一点,但这是函数/变量的确切嵌套。我应该注意到我已经尝试将.call(window).bind(window)添加到节点构造函数中而没有运气

0 个答案:

没有答案