简体   繁体   中英

javascript OOP:reach the method inside object

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

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();

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM