我需要能够确定何时创建一个对象(不是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