0

Here is the my question

var panel = {
    _pnlHeaderContainer: $('.panelHeader'),
    _pnlHeaderString:"",
    //private method
    _Write: function (pnlHeaderString) { return this._pnlHeaderContainer.html(pnlHeaderString); },
    Clear: function () { return this._pnlBaslikContainer.html(""); },
   // _fake:this,
    Header: {
        AddEvent:"Add Event",
        Calendar: "Calendar",
    }

};

what I wanna achieve is using the _Write method in Header object something like this

Header: {
        AddEvent:this._Write("Add Event"),
        Calendar: "Calendar",
        }

trying to run this code like this panel.Header.AddEvent; but it says me Write is not a function

stackada
  • 414
  • 1
  • 6
  • 16

1 Answers1

1

I like to provide a context when creating a class

function Panel(){
    var context = this;

    this._pnlHeaderContainer = $('.panelHeader');
    this._pnlHeaderString = "";

    this._Write = function(pnlHeaderString){ 
        return context._pnlHeaderContainer.html(pnlHeaderString); 
    };
    this.Clear = function(){ 
        return context._pnlBaslikContainer.html(""); 
    };
    this.Header = {
        AddEvent: function(){ return context._Write("Add Event"); },
        Calendar: "Calendar",
    };
}
var panelObject = new Panel();

// Do whatever you want...
panelObject.Header.AddEvent();
chriswirz
  • 278
  • 1
  • 9