我需要能夠確定何時創建一個對象(不是DOM元素 - 一個JavaScript對象)。注意房地產創建活動?
An answer to this question有一些非常有用的代碼來創建可觀察的屬性,所以你可以在屬性改變時觸發一個函數。
在我的情況下,我需要做一些事情,當創建對象/屬性,而不是現有的屬性更改,我對這些問題的有限理解並沒有幫助我找出是否或如何使用該代碼來做到這一點經過多次眯眼。
情況是:頁面加載一堆腳本。一些腳本創建由其他腳本需要的東西,e.g:
ThisStuff = (function() {
// blah blah
return self;
}());
一些其他的代碼需要初始化這個ThisStuff
,只要它是可用,DOM加載完成後,這可能是。用戶實際上並不需要ThisStuff
,因此無論何時腳本加載完成都會發生。所以我想沿着線做一些事情:因爲建築
$(document).ready(function() {
wheneverIsAvailable(window,'ThisStuff', function(object) {
object.init(args);
})
});
我知道有其他的解決方案,這個問題(改變腳本命令,或加載腳本需求),但這些都是困難的。所以我只對與其他解決方案相比的方式感興趣。如果jQuery提供了一些這樣的功能,那也可以,因爲我正在使用它。
我怎麼能不喜歡這個?我希望有一種非定時的方式可以輕鬆完成,但不是什麼大問題。 – 2011-03-15 21:23:43
@jamietre:我不喜歡那些黑客,但定時器通常工作整齊。而且,在我看來這很容易。 – pimvdb 2011-03-15 21:25:59
爲了好玩,我實際上已經自己寫了它,然後用代碼更新它,它在這裏:http://jsfiddle.net/hpw8Y/3/ ..在很多方面類似,但我無法弄清楚我的是否會實際上工作。我無法理解的是,你用一個數組來做這件事,當它最終成功時,我的'obj'還會存在嗎?雖然有一個改進,但你的:不要啓動計時器,除非你必須:) – 2011-03-15 22:23:39