Как можно на js проверить принадлежит ли функция определенному объекту? Есть объект modal, есть функция openModal(), вопрос заключается вот в чем - как можно внутри функции openModal проверить при вызове - принадлежит ли она данному объекту или нет?

21 Авг 2019 в 07:02
176 +1
2
Ответы
1

Для проверки принадлежности функции к определенному объекту можно воспользоваться методом bind() или оператором this внутри функции.

Пример с методом bind():

const modal = {
openModal: function() {
console.log(this === modal);
}
};
const anotherModal = {
openModal: modal.openModal.bind(anotherModal)
};
modal.openModal(); // true
anotherModal.openModal(); // false

Пример с использованием оператора this:

const modal = {
openModal: function() {
console.log(this === modal);
}
};
const anotherModal = {
openModal: function() {
modal.openModal.call(this);
}
};
modal.openModal(); // true
anotherModal.openModal(); // false

В обоих примерах при вызове функции openModal() происходит проверка принадлежности данной функции к объекту modal или anotherModal.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир