因此,我在SO中搜索的範圍非常廣泛,但無法找到答案(可能是因爲我對它的理解錯誤)。如何爲對象的所有實例調用對象函數
我有這樣的(很簡單)定義的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時,爲所有小配件調用此函數。
什麼是最好的方式來實現這一目標?目前,當窗口滾動時,我看到控制檯日誌進行滾動,但接下來的消息是沒有方法checkForUpdates。 我相信(這)是指jQuery實例,而不是我的小工具實例。我如何讓jQuery調用checkForUpdates的小工具實例?
在此先感謝!
var self =這個技巧! – jamis0n
感謝您的幫助!我很好奇我會用window.gadget.prototype來設置。這會是一種情況,我可以爲所有新的Gadget實例設置一個變量爲特定值?它看起來像這樣:window.Gadget.prototype.hasBeenRevamped = false; – jamis0n
我不認爲你想在這種情況下使用'prototype'。你必須像'var gadget = new window.Gadget()'那樣創建Gadget的實例,然後你可以像這樣設置實例的屬性:'gadget.hasBeenRevamped = false;'。這是否回答你的尷尬? – JAM