Von Endergebnisses Sicht gibt es keinen Unterschied zwischen den beiden Anruf, so dass Sie mit myArray
wird am Ende enthält, keine Elemente.
Allerdings gibt es gibt einen kleinen Unterschied (wenn Sie über die verschiedenen Rückgabewerte do not care):
self.myArray([]);
wird ersetzt die zugrunde liegende Array-Instanz mit einem neu leeren Array erstellt.
Während die
self.myArray.removeAll();
werden alle Elemente aus dem zugrunde liegenden Array entfernt aber es wird die Array-Instanz halten.
Wenn Sie also mehrere haben ko.observableArray
die gleiche underlaying Array verwenden, können Sie die differnce zwischen den beiden Anruf sehen:
Demo JSFiddle.
Die erste eine neue beobachtbar und alle Zeichnungen mit dem alten schafft verloren . – DCoder
@DCoder Entschuldigung, ich habe einen Tippfehler gemacht ... bitte schauen Sie noch einmal. – msfanboy
Sie könnten den Quellcode von Knockout lesen, um zu sehen, wie es implementiert ist. Sie löschen beide das Array, der einzige erkennbare Unterschied ist, was sie zurückgeben - die erste Option gibt das Observable selbst zurück, die zweite gibt die alten Werte zurück. – DCoder