プライベートメソッドからパブリックメソッドを呼び出したいのですが、プロパティ「this」はウィンドウオブジェクトを参照しています。
モジュールパターンを適用しようとしていることに注意してください。jsfiddle.netで実用的なコード例を見つけることができます
// how can i access a public method from a private one?
// (in this example publicAlert from privateMethod)
// this refers to the window object.
$(function() {
var modulePattern = (function($)
{
var privateMethod = function()
{
appendText("called privateMethod()");
this.publicAlert();
};
var appendText = function(texToAppend)
{
var text = $('#output').text() + " | " + texToAppend;
$('#output').text(text);
};
return {
publicMethod : function()
{
appendText("called publicMethod()");
privateMethod();
},
publicAlert : function()
{
alert("publicAlert");
}
};
});
mp = new modulePattern($);
mp.publicMethod();
});