Ответ 1
С точки зрения конечного результата нет никакой разницы между двумя вызовами, поэтому вы получите myArray
содержащий элементов.
Однако есть одно небольшое отличие (если вас не интересуют разные возвращаемые значения):
self.myArray([]);
заменит базовый экземпляр массива вновь созданным пустым массивом.
В то время как
self.myArray.removeAll();
удалит все элементы из базового массива, но сохранит экземпляр массива.
Так что если у вас есть несколько ko.observableArray
использующих один и тот же массив лежащих в основе, вы можете увидеть разницу между двумя вызовами:
Демо JSFiddle.