JavaScript更新最后一个索引类数据
JavaScript updating last index class data
我有以下问题。我有一个对象数组,当我想获取其中一个项并更新数据时,它会更新最后的数据。例如:
var arr = [];
for (var i = 0; i < 8; i++){
var c = new MyClass1(i);
arr.push (c)
}
和MyClass1
(function () {
var score = 0;
function MyClass1(id){
this.id = id;
this.x = 100;
//some code. not important
}
var p = MyClass1.prototype;
p.updateScore = function (s){
score = s;
}
window.MyClass1 = MyClass1;
}());
以及返回其中一个类的函数
var getMyClassesById = function(/* int */ id){
var size = arr.length;
for (var i = 0; i<size; i++){
if (id == arr[i].id){
return arr [i];
}
}
}
最后,我正在调用函数,并希望更新分数
getMyClassesById(1).updateScore (122);
它更新最后一个索引项Score,并调用最后一个项"updateScore"函数。。。为什么?但当我更改其他属性时,它会正确更改,例如"x"。我不明白这是不是原型不对劲?
您的变量score
没有定义为MyClass
的成员,它只在闭包的范围内定义。您的代码可以工作,但对于MyClass
的所有实例,只有1个"分数"。
如果分数应该是MyClass
的一部分,那么将其移动到
function MyClass1(id){
this.id = id;
this.x = 100;
this.score = 0
//some code. not important
}
并更新方法:
var p = MyClass1.prototype;
p.updateScore = function (s){
this.score = s;
}
(function () {
function MyClass1(id){
this.id = id;
this.x = 100;
this.score = 0;
//some code. not important
}
var p = MyClass1.prototype;
p.updateScore = function (s){
this.score = s;
}
window.MyClass1 = MyClass1;
}());
var arr = [];
for (var i = 0; i < 8; i++){
var c = new MyClass1(i);
arr.push (c)
}
var getMyClassesById = function(/* int */ id){
var size = arr.length;
for (var i = 0; i<size; i++){
if (id == arr[i].id){
return arr [i];
}
}
}
getMyClassesById(1).updateScore (122);
console.log(arr);
相关文章:
- 如何通过所选索引(AngularJS)在模态弹出窗口中显示数据
- Dojo将索引0处的数据从数组绑定到小部件
- 如何在不使用TableTool的情况下从jquery数据表中获取选定的行索引
- 如何检查数据表是否有任何包含字符串的行并获取它的行索引
- HTML5/JavaScript.使用索引数据库时无法插入数据
- 将索引列添加到数据表
- 如何使用原始选择选项的值更新引导选择的数据原始索引
- 谷歌图表API:数据系列的Z索引
- 使用Handlebars获取同级JSON数据,其中单个对象没有父索引键,但多个项有一个索引键
- 从json中获取所有数据并将其显示在索引页面上
- Angular js如何将索引数据获取到另一个模板中
- JavaScript更新最后一个索引类数据
- AngularJS/Restangular索引JSON数据提取
- 如何将数据精确地推送到数组中所需的索引
- 如何更新索引数据库中的数据
- lunr.js添加有关索引记录的数据
- 索引数据库,如何在不重新加载页面的情况下获取更新的数据
- 尝试使用PHP / Javascript构建一个可点击的索引,该索引显示单击的每个项目的数据
- 将数据返回到索引.js节点表达式
- 在索引中呈现 JSON 数据