Javascript /为什么mycode不同步

时间:2014-09-15 17:43:48

标签: 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;
  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,dataviews和typedarrays。 ObjectB正在使用Three.js绘制一些非常简洁的3D东西。

问题出在'画'中。 OBJ.get_value();正在使用指针值0(零)而不是7。 异常(我认为)main.draw(7)首先不执行Main.reset();似乎Main.reset()是中等执行的,所以我有0(零)

我不会等待任何DOM同步。

这个行为的原因是什么?也许三,js使用?我正在使用的OOP风格?

有没有办法检查为什么会这样?

任何想法都将不胜感激

注意:很抱歉使用Three.js标签。

1 个答案:

答案 0 :(得分:0)

<强>解决

我找到了NO同步的原因(或者我认为)

有时&#39;这个&#39;可以指向窗口&#39;而不是你对象的自我实例。

有时,对此的不当使用(当它是&#39; window&#39;)可能会引发您未考虑的错误。然后可以执行下一行代码,有时您可能会产生错误(非同步)操作的印象。

所以......回顾一下这个&#39; ....

的糟糕用法