方法不是一个功能

时间:2009-10-23 13:36:11

标签: javascript

我从这里尝试了代码http://www.webreference.com/programming/javascript/gr/column3/,但是firebug说 - “this.preload不是函数”。为什么?我认为函数是某种对象。

2 个答案:

答案 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对象。