Подтвердить что ты не робот

RemoveAll vs пустой массив с [] в knockoutjs

Я хочу выбросить данные в моем наблюдаемом файле каждый раз, когда получаю данные с моего сервера.

В чем разница в функциональности между

self.myArray([]);

против

self.myArray.removeAll();
4b9b3361

Ответ 1

С точки зрения конечного результата нет никакой разницы между двумя вызовами, поэтому вы получите myArray содержащий элементов.

Однако есть одно небольшое отличие (если вас не интересуют разные возвращаемые значения):

self.myArray([]);

заменит базовый экземпляр массива вновь созданным пустым массивом.

В то время как

self.myArray.removeAll();

удалит все элементы из базового массива, но сохранит экземпляр массива.

Так что если у вас есть несколько ko.observableArray использующих один и тот же массив лежащих в основе, вы можете увидеть разницу между двумя вызовами:

Демо JSFiddle.