Object.observe()
- нове доповнення до JavaScript, дозволяє переглядати
об'єкти в асинхронному режимі. Це означає, що якщо ви хочете виявити зміни в
JavaScript-об'єкті, вам не потрібна окрема бібліотека.
Потрібно підкреслити, що AngularJS також збирається використовувати
object.observe()
у своїй наступній основній версії (AngularJS 2.0) для
виявлення змін у моделі. Отже, давайте розглянемо, як ця нова функція може
спростити ваше життя.
В даний момент, тільки Chrome (36+) підтримує цю функцію.
Як використовувати
Ви можете спостерігати за змінами в об'єкті наступним чином:
var model={};
Object.observe(model, function(changes){
changes.forEach(function(change) {
console.log(change);
});
});
Перший параметр object.observe()
\- це об'єкт, який ви хочете переглянути.
Елементи, які не є об'єктами заборонені. Другий параметр - це функція
спостерігача. Ця функція приймає один параметр, який містить набір змін
записів для конкретного об'єкта. Наведений вище фрагмент просто ітерує зміни
масиву і реєструє кожну зміну запису.
Кожна зміна запису має наступні властивості:
-
type
: тип операції застосованої щодо об'єкта. Це може бути:
-
додавання;
-
оновлення;
-
видалення;
-
name
: ім'я властивості, яка була додана/видалена/оновлена. -
oldValue
: повертає старе значення властивості, яке було видалене/оновлене. -
object
: об'єкт, який спостерігається.
Якщо ви більше не хочете переглядати об'єкт, ви можете виконати наступне:
Object.unobserve(model, observer);
Для вас, я створив CodePen демо для експерименту. Просто відкрийте демо, додайте/видаліть властивості і ви зможете відслідкувати зміни. Переконайтеся, що при роботі з демо ви використовуєте Chrome 36+.
Висновок
Object.observe()
, безумовно, гарний і швидкий спосіб переглядати JavaScript-
об'єкти.
Ще немає коментарів