Object.observe()

26 грудня 2014 23:11 comandante 308 0

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+.

See the Pen cLefw by Sandeep Panda (@Sandeep92) on CodePen.


 


 

Висновок


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

Джерело перекладу

308 4

Схожі матеріали:

Коментарі:

Авторизуйтесь, щоб залишити коментар.