我有一个数组,它在我的应用程序之上声明:
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
之后和完成之前,是否可以更改函数的长度?
答案 0 :(得分:4)
这不可能,因为JavaScript具有运行完成语义。更多信息请点击此处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/EventLoop。
相关引用:
这在推理程序时提供了一些不错的属性,包括每当一个函数运行时,它不能被抢占并且在任何其他代码运行之前完全运行(并且可以修改函数操作的数据)