相关代码:
function stepNetwork() {
for(i = 0; i<maxNeurons; i++) {
if(neuronArray[i].charge >= neuronArray[i].threshhold) {
var elapsed = ((new Date()).getTime()) - neuronArray[i].lastFired;
if(elapsed >= 5000){
fireNeuron(i);
}
}
}
}
function fireNeuron(n){
//get number of outputs on this neuron
var outs = neuronArray[n].outputs.length;
for(p = 0; p < outs; p++) {
sendChargeTo = neuronArray[n].outputs[p];
addCharge(sendChargeTo);
}
neuronArray.charge = 0;
neuronArray.lastFired = ((new Date()).getTime());
}
function addCharge(n) {
neuronArray[n].charge++;//HERES THE ERROR!!
}
这是萤火虫告诉我的事情:
neuronArray[n] is undefined ///then why can I see its value in the scripts->watch tab?
addCharge(n=100)js_operation.php (line 73)
fireNeuron(n=73)js_operation.php (line 66)
stepNetwork()
让我感到惊讶的是,当我传递一个数字时,它会起作用,当我评估neuronArray
,neuronArray[n]
,neuronArray[n]
时。 <脚本窗格(监视区域)中的charge
等,它始终能够引用它。
答案 0 :(得分:1)
也许这就是问题:
sendChargeTo = neuronArray[n].outputs[p];
addCharge(sendChargeTo);
您没有发送addCharge
索引,而是发送neuronArray[n].outputs[p]
。
答案 1 :(得分:0)
除了Raynos关于fireNeuron
中最后两行的评论,我看不出明显的问题。
也许你有全局问题?我认为变量i
,p
和sendChargeTo
应该使用var
声明为本地。