我从这里尝试了代码http://www.webreference.com/programming/javascript/gr/column3/,但是firebug说 - “this.preload不是函数”。为什么?我认为函数是某种对象。
答案 0 :(得分:2)
您可能忘记在页面的下方包含一些代码,在ImagePreloader原型上定义了preload
函数。
答案 1 :(得分:1)
当你调用构造函数ImagePreloader()时,你显然是这样做的:
ImagePreloader(imageSrcs, imagesProcessing);
(假设imageSrcs是一个URL的数组,而imagesProcessing是一个带有两个参数的函数)
但是ImagePreloader是一个构造函数,所以你必须用它创建新对象,所以你必须输入:
new ImagePreloader(imageSrcs, imagesProcessing);
实际上,您可以将结果对象放到某个变量中,但您不必这样做:ImagePreloader没有您可能需要调用的方法。此外,您可能担心ImagePreloader将被垃圾收集器销毁,而不会将对象存储到变量,但它不会是:ImagePreloader.prototype.preload()创建的每个Image对象都将在其oImagePreloader属性中保留到ImagePreloader对象的链接。当为您创建的所有Image对象都将被删除时,垃圾收集器将删除ImagePreloader对象。