Knockout.js removeAll vs清空knockoutjs中带有[]的数组

Knockout.js removeAll vs清空knockoutjs中带有[]的数组,knockout.js,Knockout.js,每次我从服务器获取数据时,我都想扔掉Observarray中的数据 两者在功能上有什么不同 self.myArray([]); vs 从最终结果的角度来看,这两个调用之间没有区别,因此您最终将得到不包含任何元素的myArray 但是有一个小差别(如果您不关心不同的返回值): 将用新创建的空数组替换基础数组实例 而 self.myArray.removeAll(); 将从基础数组中删除所有项,但将保留数组实例 因此,如果您有多个ko.observableArray使用相同的参考底图数组,您可以

每次我从服务器获取数据时,我都想扔掉Observarray中的数据

两者在功能上有什么不同

self.myArray([]);
vs


从最终结果的角度来看,这两个调用之间没有区别,因此您最终将得到不包含任何元素的
myArray

但是有一个小差别(如果您不关心不同的返回值):

将用新创建的空数组替换基础数组实例

self.myArray.removeAll();
将从基础数组中删除所有项,但将保留数组实例

因此,如果您有多个
ko.observableArray
使用相同的参考底图数组,您可以看到两个调用之间的差异:


演示

第一个创建了一个新的可观察对象,旧的可观察对象的所有订阅都丢失了。@d对不起,我键入了一个错误。。。请再看一看。您可以阅读Knockout的源代码,看看它是如何实现的。它们都清除了数组,唯一明显的区别是它们返回的内容-第一个选项返回可观察对象本身,第二个选项返回旧值。从内存角度看,
removeAll()
更好吗?e、 g.它会释放阵列上所有的内存吗?
self.myArray([]);
self.myArray.removeAll();