修改多个函数中的数组是不是很糟糕?

时间:2014-09-28 12:35:17

标签: javascript arrays reference

我有一个数组,它在我的应用程序之上声明:

var arr = [1,2,3,4]

我有两种方法在后台运行。

方法1

Array.prototype.numberOfCoolElements = function(){
          doSomethings();
          doOtherThings();

          // meantime, the method2 will be called

          return this.length;
}

方法2

Array.prototype.changeTheLength = function(){
          this[100] = 123;
}

如果我在具有相同数组引用的两个异步函数上运行这两个方法:

在调用numberOfCoolElements之后和完成之前,是否可以更改函数的长度?

1 个答案:

答案 0 :(得分:4)

这不可能,因为JavaScript具有运行完成语义。更多信息请点击此处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/EventLoop

相关引用:

  

这在推理程序时提供了一些不错的属性,包括每当一个函数运行时,它不能被抢占并且在任何其他代码运行之前完全运行(并且可以修改函数操作的数据)