我有一批Web Audio API節點,看起來像下面的代碼。我想把這個抽象成一個簡單的構造函數,但是我遇到了麻煩。我不確定我做錯了什麼。最終的結果應該是這個樣子爲一組Web音頻API節點創建一個簡單的構造函數
function filterTemplate(name,freqVal){
this.name = context.createBiquadFilter();
this.name.type = 5;
this.name.gain.value = null;
this.name.Q.value = 1;
this.name.frequency.value = this.freqVal; // freqVal is here
}
當我調用該函數:
var filter = new filterTemplate("theName",200); //Uncaught TypeError: Cannot call method 'createBiquadFilter' of undefined
我改變了方法,看起來像這樣和錯誤被刪除
this.name = function(){return context.createBiquadFilter()};
後來我獲得各種屬性值的另一個錯誤
//Uncaught TypeError: Cannot set property 'value' of undefined
我真的只是混淆了正確的方式來創建一個使用內置的瀏覽器方法和屬性的香草構造函數。
我想抽象的代碼下面到看起來像上面的代碼
filter1 = context.createBiquadFilter();
filter1.type = 5;
filter1.gain.value = null;
filter1.Q.value = 1;
filter1.frequency.value = 80; // Changes
filter2 = context.createBiquadFilter();
filter2.type = 5;
filter2.gain.value = 0;
filter2.Q.value = 1;
filter2.frequency.value = 240; // Changes
filter3 = context.createBiquadFilter();
filter3.type = 5;
filter3.gain.value = 0;
filter3.Q.value = 1;
filter3.frequency.value = 750; // Changes
filter4 = context.createBiquadFilter();
filter4.type = 5;
filter4.gain.value = 0;
filter4.Q.value = 1;
filter4.frequency.value = 2200; // Changes
filter5 = context.createBiquadFilter();
filter5.type = 5;
filter5.gain.value = 0;
filter5.Q.value = 1;
filter5.frequency.value = 6000; // Changes
那麼你的問題是什麼? – dfsq 2013-03-09 08:36:35
var filter = new filterTemplate(theName,200); //未捕獲的ReferenceError:沒有定義名稱 – William 2013-03-09 08:52:58
'theName'沒有被定義。 – dfsq 2013-03-09 08:57:24