Object.observe()

2 хв. читання

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() \- це об'єкт, який ви хочете переглянути. Елементи, які не є об'єктами заборонені. Другий параметр - це функція спостерігача. Ця функція приймає один параметр, який містить набір змін записів для конкретного об'єкта. Наведений вище фрагмент просто ітерує зміни масиву і реєструє кожну зміну запису.

Кожна зміна запису має наступні властивості:

  1. type: тип операції застосованої щодо об'єкта. Це може бути:
  • додавання;

  • оновлення;

  • видалення;

  1. name: ім'я властивості, яка була додана/видалена/оновлена.

  2. oldValue: повертає старе значення властивості, яке було видалене/оновлене.

  3. object: об'єкт, який спостерігається.

Якщо ви більше не хочете переглядати об'єкт, ви можете виконати наступне:

    Object.unobserve(model, observer);

Для вас, я створив CodePen демо для експерименту. Просто відкрийте демо, додайте/видаліть властивості і ви зможете відслідкувати зміни. Переконайтеся, що при роботі з демо ви використовуєте Chrome 36+.

Висновок

Object.observe(), безумовно, гарний і швидкий спосіб переглядати JavaScript- об'єкти.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.6K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація