如何同步访问javascript对象的私有成员

时间:2012-06-09 11:16:09

标签: javascript synchronized members

我有一个Javascript对象,如下所示:

var ccStatTracker = (function (){
  ccmap:{
    "1":["1","2","3","4"],
    "2":["4","5"];       
  }

  return {
    modifyCCMap: function (){
      // Code which takes following actions: 
      // - adds/removes keys.
      // - modifies arrays stored as values against the keys in the map.  
    }  
  }
)();

我有一个DHTMLXGrid组件,它以行和列的形式显示网格。 当我编辑网格中的任何单元格时,会调用“onEditCell”事件。 现在,我想从附加到“onEditCell”事件的事件处理函数调用ccStatTracker.modifyCCMap()。当我继续修改单元格时,这个事件将被异步调用,这将调用一个函数“modifyCCMap”,它将修改我的Javascript对象的私有成员“CCMap”。因此,两次调用看到的CCMap的最新状态可能不同吗?那么处理这个问题的最佳方法是什么? Javascript和Java中有“同步”的东西吗?

请帮助我,因为它将决定我们为实施此目标而采取的方法。

1 个答案:

答案 0 :(得分:13)

JavaScript是单线程的(暂时搁置),没有任何事情发生异步(或者所有事情) - 所有代码:事件处理程序,超时,回调等 - 一个接一个地在同一个线程中运行。

因此,您不需要在JavaScript中进行任何同步。 JavaScript中的任何给定代码片段都保证只由一个线程执行。这有多酷?

另见