Итак, я искал по всему миру, но не смог найти ответ на этот вопрос (вероятно, потому, что я понимаю это неправильно).Как вызвать функцию «Объекты» для всех экземпляров объекта
У меня есть функция JS, определенный как это (очень упрощенно):
window.Gadget = function(name, cost){
this.name = name;
this.cost = cost;
this.hasBeenRevamped = false;
this.checkForUpdates = function(){
console.log("checking for updates...");
}
window.$(window).scroll(function() {
console.log("scrolling...");
this.checkForUpdates(); /* The this here is erroneously referring to jQuery and not my Gadget Object. I need to fix this but am not sure how*/
});
}
Я пытаюсь найти способ вызова checkForUpdates() для всех экземпляров гаджета, так что если у меня есть 10 объектов Гаджет они все проверяют обновления при вызове функции.
В конечном итоге я хочу вызвать эту функцию для всех гаджетов всякий раз, когда окно прокручивается по функции jQuery $ (window) .scroll.
Каков наилучший способ достичь этого? В настоящее время, когда окно прокручивается, я вижу консольный журнал для прокрутки, но затем messsage, что нет метода checkForUpdates. Я считаю, что это относится к экземпляру jQuery, а не к экземпляру Gadget. Как я могу вызвать jQuery для моего экземпляра гаджета checkForUpdates?
Заранее благодарен!
var self = это сделал трюк! – jamis0n
спасибо за помощь! Мне любопытно, что я хотел бы использовать window.gadget.prototype для установки. Будет ли это случай, когда я могу установить переменную в определенное значение для всех новых экземпляров Gadget? Будет ли это выглядеть так: window.Gadget.prototype.hasBeenRevamped = false; – jamis0n
Я не думаю, что вы хотите использовать «прототип» в этом случае. Вам нужно будет сделать экземпляр Gadget, например 'var gadget = new window.Gadget()', тогда вы можете установить свойства для экземпляра следующим образом: 'gadget.hasBeenRevamped = false;'. Это ответ на вашу очередь? – JAM