2016-04-18 11 views
0

hier die Methode innerhalb Objekts erreichen ist meine FrageJavaScript OOP:

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", 
    } 

}; 

, was ich erreichen will ist die _write Methode in Header-Objekt so etwas wie diese, dies zu laufen versuchen

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

mit Code wie dieses panel.Header.AddEvent; aber es sagt Schreib mir ist keine Funktion

+0

Sie haben eine Frage nicht gestellt. Was ist falsch an diesem Code? –

+1

Ich fühle, dass vielleicht [das ist, was Sie fragen] (http://stackoverflow.com/questions/4616202/self-references-in-object-literal-declarations)? –

+0

: this._Write ("Ereignis hinzufügen"), kann hier nicht erreicht werden – stackada

Antwort

1

Ich mag eine context schaffen, wenn Erstellen einer Klasse

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