Как создать подобную функцию в JavaScript?

Есть функции, которые работают при обращении к объекту через точку (пример, функция fadeOut):
elem.fadeOut();

Как создать свою функцию, чтобы обращаться к элементу через точку, а не передавать как аргумет в скобках?
// из
rotateAndJump( elem );

// в
elem.rotateAndJump();
  • Вопрос задан
  • 159 просмотров
Решения вопроса 5
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Вот так: JavaScript -> Reference -> Classes

Либо просто добавить нужную функцию к объекту:
let o = {
    foo: function() { console.log('foo called') }
}

>> o.foo()
<- foo called
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
Если какой-то стандартный элемент расширить и добавить ему метод, то через манки патчинг прототипа:
HTMLElement.prototype.fadeOut = function() { console.log('Called fadeOut on element', this) };
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
Упомянутый метод fadeOut() вероятно, из jQuery?

Там эти новые методы добавляются самим jQuery и установленными плагинами не к элементам, а к элементам-обёрнутым-в-jQuery всё-таки:
- elem.fadeOut();
+ $('selector').fadeOut();

Поэтому посмотрите, может, как писать плагины к jQuery. Именно своим плагином можно добавить новые «методы через точку».
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
Свои собственные методы можно создавать через прототипы.

https://habr.com/ru/articles/518360/
Ответ написан
Комментировать
@historydev Куратор тега JavaScript
Редактирую файлы с непонятными расширениями
const elem = {fadeOut: () => return 'Method working..'};
console.log(elem.fadeOut());
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы