var config = {
    onload: (function () {
        return function () {
           //code
        }
    })(),
    img: (function () {
        return Tool.Image.Load("i.jpg", config.onload);//“Cannot read property onload”
    })()
}
这样写有错误,请问该怎么写?

解决方案 »

  1.   

    这样试试:
    return Tool.Image.Load("i.jpg", config.onload());//“Cannot read property onload”
      

  2.   

    var config = {};   这个是定义对象, 先执行花括号中的语句,再将花括号创建的对象赋值给config,你的代码中,eturn Tool.Image.Load("i.jpg", config.onload), 这个时候config还只是undefined,所以出现错误了!改成这样试试:var config = {
        onload: (function () {
            return function () {
               //code
            }
        })()
    };config.img = (function () {
            return Tool.Image.Load("i.jpg", config.onload);//“Cannot read property onload”
        })();
      

  3.   

    不行的,我需要将这个函数传递过去。
    Tool.Image.Load的代码:Image: {
            Load: function (src, onload, onerror) {
                var image = new Image();
                image.src = src;
                if (onload)
                    image.onload = onload;
                if (onerror)
                    image.onerror = onerror;
                return image;
            }
        }