Javascript/为什么mycode不同步
我发现自定义代码并不像我想的那样同步 我有一个伪代码:Javascript/为什么mycode不同步,javascript,three.js,Javascript,Three.js,我发现自定义代码并不像我想的那样同步 我有一个伪代码: ObjectA = function () { var pointer; var value =[]; this.set_pointer = function (p) {pointer = p;} this.return_value = function () {return value[pointer];} } ObjectB = function () { var SCOPE = this; v
ObjectA = function ()
{
var pointer;
var value =[];
this.set_pointer = function (p) {pointer = p;}
this.return_value = function () {return value[pointer];}
}
ObjectB = function ()
{
var SCOPE = this;
var OBJ = new ObjectA();
....
this.reset = function ()
{ OBJ.set_pointer(0);}
this.draw = function (what)
{
SCOPE.update();
OBJ.set_pointer(from);
OBJ.get_value();
// do somethings with Three.js
// draw some lines and some little pointclouds.
// do some things
// update two text elements
}
}
Main = new ObjectB();
Main.draw(7);
Main.reset();
ObjectA正在使用arraybuffers、DataView和TypeDarray。
ObjectB正在使用Three.js绘制一些非常复杂的3D东西
问题出在“抽签”里面。
对象获取_值();正在使用指针值0(零)而不是7。
异常地(如我所想)main.draw(7)没有首先执行,随后main.reset()也没有执行;似乎Main.reset()是中间执行的,所以我有0(零)
我不会等待任何DOM同步
这是什么原因造成的?。也许三个,js用的?我使用的OOP风格
有没有办法检查为什么会发生这种情况
如有任何意见,将不胜感激
注意:很抱歉使用Three.js标记。已解决 我已经找到了(或我认为)不同步的原因 有时“this”可能指向“window”,而不是对象的自身实例 有时,错误地使用它(当它是“窗口”时)可能会引发您没有考虑到的错误。然后可以执行下一行代码,有时您可能会有错误(不同步)操作的印象
所以。。。。回顾一下“this”的糟糕用法。…您遗漏了太多代码,无法让它清楚出了什么问题。@Pointy。。。嗯,相信我,代码既不大也不复杂。如果您认为这可能是原因,请给出一些建议扫描您是否创建了一个jsfiddle.net示例,我们可以在其中运行重复问题的代码?