我的原型定義的問題是低於JavaScript的原型,在調用函數
var DupPlayer = function(strName){
this.name = strName;
}
var FreqTab = function(strMsg,strName){
this.value =strMsg;
this.original = strName;
this.dupPlayers = new Array();
FreqTab.prototype.addDup = function(dup){
this.dupPlayers.push(dup);
}
}
我創建用繩子關鍵數組對象。
var freqTab = new Array();
if(freqTab[key]==undefined){
freqTab[key] = new FreqTab(strMsg,strName);
}else{
var temp = freqTab[key];
temp.addDup(new DupPlayer(strName));
}
獲取錯誤「TypeError:temp.addDup不是函數」。
請幫我,我在函數調用錯誤的地方。
[編輯] 發現,當關鍵是 '減少' 本次發行occures。 :(
的console.log(freqTab [鍵]),給出以下的輸出,僅當密鑰是減少,對象被存儲爲功能。
{ value: 'sleeping', original: 'Pug', dupPlayers: [] }
{ value: 'black', original: 'Sur', dupPlayers: [] }
[Function: reduce]
如果'freqTab [key]'是未定義的,則將其定義爲新對象。但如果不是那麼它只是一個簡單的數組元素而不是你的對象。因此'addDup'不可用。 – Rajesh
'key'的價值是什麼?與'strMsg'和'strName'一起。介意創建一個片段或小提琴,以便我們可以看到錯誤信息? –
那麼,爲什麼你要使用字符串值的鍵時使用數組?更改爲'freqTab = {};'。 –