- Етапи створення сайту
- оптимізація сайту
- HTML 4.01
- css 2.1
- HTML5
- CSS3
- WordPress
- JS
- Корисні статті
Сьогодні ми розглянемо метод bind (), але для початку потрібно розібратися що ж це таке. У перекладі з англійської означає «прив'язувати», «зв'язувати». Цей метод служить для прив'язки контексту, а також аргументів. Перш ніж, почати вивчати метод bind () розглянемо вот такой вот код:
Що сталося, чому площа квадрата була обчислена? А вся справа в тому, вбудований метод setTimeout отримав функцію square.area. але не її контекст. Як же бути в цьому випадку? Можна скористатися різними способами.
огортання виклику
Спробуємо обернути наш виклик в анонімну функцію:
Тепер начебто все в порядку, але в цьому способі є один великий недолік. Під час спрацювання setTimeout в змінну square може бути записано інше значення і результат відповідно може бути іншим.
Вбудований метод bind
- wrapper - змінна (обгортка), яка фіксує контекст;
- func - довільна функція;
- context - контекст;
- arg1, arg2 ... argN - аргументи, які будуть додані при виконанні функції, але найцікавіше, що вони стануть перед тими аргументами, які вказані при виклику.
Давайте перепишемо, наш попередній приклад з використанням цього методу:
У цьому прикладі я не застосовував аргументи. Аргументи при цьому використовуються досить рідко, але вони дозволяють створювати нові функції. На них ми не будемо загострювати увагу.
Допоміжна функція bind
Є ще один спосіб прив'язати контекст функції - це спробувати самим створити функцію bind:
Цю функцію я запозичив звідси: bind. Давайте тепер поглянемо як буде працювати ця функція (принцип майже такий же, як у вбудованому методі):
Ось таким чином ми легко прив'язали контекст об'єкта cube. Сподіваюся вам сподобався урок, не забуваємо ставити лайки!
Всі права на сайт належать Олександру Побединський.