创建更新对象字段的函数的正确方法是什么?下面的方式,似乎什么都没有发生:
function adjmatrix(neighbors){
this.neighbors = neighbors
this.sum = 0
}
adjmatrix.prototype.update = function(){
this.neighbors.forEach(function(a){a.sum += 10})
}
var myMatrix = new adjmatrix([1,2,3])
myMatrix.update()
print(myMatrix.sum) //Expect a value of 30, I get 0.
对Javascript来说是一种新事物,因此我对范围界定和工作原理尚不清楚。谢谢你的帮助。我正在命令行中通过
d8
运行我的程序。 最佳答案
为了更新对象的“ sum”属性,您的“ update”方法应如下所示:
adjmatrix.prototype.update = function(){
var matrix = this;
this.neighbors.forEach(function(a){matrix.sum += 10})
}
如果您想总结“ neighbors”值,则如下所示:
adjmatrix.prototype.update = function(){
var matrix = this;
this.neighbors.forEach(function(a){ matrix.sum += a; })
}
.forEach()
调用传入数组的每个值,每个调用一次。