$(myObject) 内存与 myObject 内存 - 问题
$(myObject) memory vs myObject memory - Issue
我正在编写的某些函数有问题。我的"帆船"是一个具有x位置和y位置的对象,可以将其放置在我的"格栅"对象中,该对象是"Bateau"元素的表格。
Joueur.prototype.placeFullBateau = function(grille, bateau) {
var x = bateau.positionX;
var y = bateau.positionY;
var direction = bateau.direction;
if (direction == "droite") {
for (var i = 0; i <= bateau.taille-1; i++) {
grille.plateau[x][y+i] = $(bateau);
console.log(bateau);
console.log($(bateau));
console.log("Bateau : "+$(bateau).get(0).nom+", positionY : "+grille.plateau[x][y+i].get(0).positionY);
console.log(grille.plateau[x][y+i]);
$(bateau).get(0).positionY += 1;
};
};
在"bateau"的控制台.log()中,我的位置X和位置Y很好,它们随着我希望它们的变化而变化(我只显示两行,这个"bateau"需要5行):
Object { nom: "Porte-avion", taille: 5, positionX: 4, positionY: 2, direction: "droite" } test.js:100:5
Object { nom: "Porte-avion", taille: 5, positionX: 4, positionY: 3, direction: "droite" } test.js:100:5
在 "$(bateau)" 的 console.log() 中,位置 Y(或位置 X,取决于我想要改变的值)记住它采用的最后一个值。在这里,位置 Y 将始终为 7(因为它从 2 开始,大小为 5)。
我正在尝试:
grille.plateau[x][y+i] = $(bateau);
grille.plateau[x][y+i].get(0).positionY = bateau.positionY;
$(bateau).get(0).positionY += 1;
控制台结果
我迷路了..希望我提供了足够的信息来获得一些帮助。我不会粘贴整个代码:/。
这里有一个小提琴:https://jsfiddle.net/0jaL7svo/不是真正起作用,缺少当我单击单元格时显示的图像。我正在做的是当我点击一个单元格时,我获取它的 id。问题是,某些单元格(其中包含一个对象)的 id 是错误的,因为它采用 bateau.positionX & bateau.positionY & bateau.numJoueur。(看起来像"441",用于玩家 1 的单元格 (4,4)。这是完整的工作项目:(见下面的评论,不能发布两个链接)。只需解压缩并在本地加载(linux文件系统)。
干杯克拉奇
我建议将其关闭,因为它是这个问题的欺骗:
循环内的JavaScript闭包 - 简单的实际示例
但原因如下:
这是 for 循环中非常常见的 JavasScript 闭包问题。您需要捕获当前通过循环的i
值,而不仅仅是引用i
:
for (var i = 0; i <= bateau.taille-1; i++) {
(function(i) {
grille.plateau[x][y+i] = $(bateau);
console.log(bateau);
console.log($(bateau));
console.log("Bateau : "+$(bateau).get(0).nom+", positionY : "+grille.plateau[x][y+i].get(0).positionY);
console.log(grille.plateau[x][y+i]);
$(bateau).get(0).positionY += 1;
}(i));
};
相关文章:
- 重复应用 d3 转换导致的内存泄漏
- 如何显示在给定极限内存在的所有素数
- IE7中的blockUI插件内存泄漏25kb
- Javascript闭包-如何防止内存泄漏
- 基于订阅的nosql内存数据库
- 显示:阻止/无html元素,css.not从内存中释放
- jQuery Draggable:内存泄漏
- 元素过多的HTML内存使用情况
- 如何使用Javascript在FireFox中将html从内存动态加载到iframe中
- "检测到可能的EventEmitter内存泄漏”;使用Gulp+Watchify+Factor捆绑包
- Javascript图像数组预加载速度和从内存中删除
- 在Dojo类中递归调用setTimeout时是否存在内存泄漏
- VBA加载网页并提取内存中的数据
- 是内存泄漏
- 将处理程序留在img.onload上是内存泄漏
- new Datamap() 在调用之间保持内存的共享状态
- 具有并发sse连接的node.js内存泄漏
- HTML5内存游戏-JavaScript功能
- HTML5 FileReader API内存问题
- $(myObject) 内存与 myObject 内存 - 问题