Функции как методы в JavaScript

121
30 сентября 2019, 02:50

Можно ли использовать функцию как метод в js? Например есть функция stop.

function stop() {
    console.log('stop');
}
stop();

То есть можно вызвать функцию через точку .stop()? Если да, то покажите пожалуйста на примере. Только учу js.

Answer 1

var t = { 
 stop: function(){ 
    console.log('stop'); 
 } 
} 
 
t.stop();

Answer 2

Использовать object.method() можно только в том случае, если метод определён в объекте как его свойство. Поэтому обычную функцию так использовать нельзя, она не будет найдена в объекте перед вызовом. Разве что вы сначала определите функцию, а потом присвоите её объекту:

function stop() {
    console.log('stop');
}
const obj = { stop: stop };
obj.stop();

Но можно повторить смысл такого вызова. Так как смысл его в том, чтобы метод мог использовать объект как значение this внутри себя, можно явно вызвать функцию, указав на объект как на this:

stop.call(object);

или:

stop.bind(object)();

См. Function.prototype.call() и Function.prototype.bind().

READ ALSO
Как получить значение с объекта и сравнить его

Как получить значение с объекта и сравнить его

на странице имеется список input[type=radio], всего их 10 штук у каждого три варианта ответаКак с помощью js или jquery получить значение каждого из инпутов...

116
Зависание при изменении DOM в цикле Ajax

Зависание при изменении DOM в цикле Ajax

здравствуйте! Прошу помощи или совета, как поступить в следующей ситуации, для достижения наибольшей производительности в $(arr)each(function(){ где...

93
Ошибка 429 Instagram API

Ошибка 429 Instagram API

У меня есть сайт, где размещены публикации из Instagram при использовании JS-плагина InstafeedНо почему-то Instagram API выдает ошибку 429

125
Чем является имя свойства объекта?

Чем является имя свойства объекта?

Когда создается объект через литерал, вот так

102