Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/为什么mycode不同步_Javascript_Three.js - Fatal编程技术网

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示例,我们可以在其中运行重复问题的代码?