2012-12-25 27 views
2

我在它的HTML文件上工作的JavaScript。我怎么能说与其父功能之外的嵌套函数?

下面是JavaScript代码:

var dImage = new Image(); 

var drawing = (function() { 

    . 
    . 
    . 
    . 

    redrawing = function() { 
     context.drawImage(dImage, dX, dY, dWidth, dHeight); 
    }, 

    init = function() { 
     dImage.src = "images/d.png"; 
     redrawing(); 
    }; 

    return { 
     init: init 
    }; 

}()); 

function updateImage(dSrc){ 
    dImage.src = dSrc; 
    // Call redrawing here 
} 

在HTML我打电话

drawing.init(); 

,它是工作的罚款。我也可以通过调用

updateImage("images/d2.png"); 

改变图像源,它是改变源的工作。

但我需要调用redrawing()的方法updateImage()刷新图像。

我尝试以很多方式调用它(例如,drawing.redrawing();),但没有响应redrawing()

+0

这是预期的行为 - “重绘”似乎明确不可见。 –

回答

4

如果您希望能够从它的定义在函数的外部调用redrawing功能,你需要从函数返回它,就像你做与init

var drawing = (function() { 

    . 
    . 
    . 
    . 

    return { 
     init: init, 
     redrawing: redrawing 
    }; 
}()); 
1

redrawing市民:

return { 
    init: init, 
    redrawing: redrawing 
};