更新对象字段的 Javascript 函数

标签 javascript

创建更新对象字段的函数的正确方法是什么?下面的方式,似乎什么也没发生:

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})
}

如果您想对“邻居”值求和,则如下所示:

adjmatrix.prototype.update = function(){
    var matrix = this;
    this.neighbors.forEach(function(a){ matrix.sum += a; })
}

.forEach() 调用传入数组的每个值,每次调用该函数一个值。

关于更新对象字段的 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24435163/

相关文章:

javascript - 找不到合适的编码器(java websocket)

javascript - 使用 HTML 和 CSS 在 JS 中的倒计时时钟

javascript - 如何在 OpenLayers-3 上使用 SVG 图像作为图层

javascript - 负载延迟淡入淡出

javascript - 在一串 javascript 代码中查找正则表达式文字

javascript - 如何在 Jasmine.js 中编写场景

javascript - 如何在 AngularJS 中选中删除时隐藏文本和复选框?

javascript - 文本区域中的 html 字符串

javascript - IMACROS 将 iim 代码转换为 javascript 后出现代码错误

javascript - arrayOfFunctions.ForEach( Func.Every( 将参数传递到数组函数中) )