javascript - 如何同步访问 javascript 对象的私有(private)成员

标签 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 对象的私有(private)成员“CCMap”。所以两次调用看到的我的 CCMap 的最新状态可能不同,对吗?那么处理这个问题的最佳方法是什么? Javascript 中是否存在与 Java 中一样“同步”的东西?

请帮助我,因为它将确定我们要采用的实现方法。

最佳答案

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

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

另见

关于javascript - 如何同步访问 javascript 对象的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10960531/

相关文章:

javascript - 如何将 JSON 从 ASP.NET View 模型保存到 JavaScript 变量中?

Java volatile 修饰符和同步块(synchronized block)

java - 如何协调多个类对私有(private)对象的同步

c++ - 尝试将指针作为参数传递给指向文件的 fstream 成员

javascript - 循环遍历类,获取类文本值,相加并输出到 div

javascript - BUG 导出的对象在修改时不会在外部发生变化

javascript - 动态定位弹窗 "windows"(div元素)

java - 为什么当我尝试访问同步列表时我的线程停止了?

c - 不同成员的结构排序

c++ - 模板对象作为模板类的静态成员