Domino 9 und frühere Versionen > ND8: Entwicklung - XPages

[Erledigt] Javascript Klasse

(1/3) > >>

oxyd21:
Hi,

irgendwie bekomm ich's nicht hin. Ich hab folgende Klasse in einer Scriptlib:

--- Code: ---function ProfilesClass() {

var m_profiles = null;
var m_staff = null;
}
ProfilesClass.prototype.setCurrentUserProfile = function() {
return "xyz"
}

ProfilesClass.prototype.setCurrentUserStaffDB = function() {
                var profil = ProfilesClass.getProfiles; //hier bleibt hakt's wahrscheinlich
return profil
}
ProfilesClass.prototype.getStaffDb = function() {
if (ProfilesClass.m_staff == null) {
ProfilesClass.m_staff = ProfilesClass.setCurrentUserStaffDB;
}
return ProfilesClass.m_staff
}
ProfilesClass.prototype.getProfiles = function() {
if (ProfilesClass.m_profiles == null) {
ProfilesClass.m_profiles = ProfilesClass.setCurrentUserProfile;
}
return ProfilesClass.m_profiles
}
--- Ende Code ---
Das Ergebnis will ich in einer XPage verwenden, was aber grundsätzlich leer bleibt.


--- Code: ---var objProfiles = new ProfilesClass();
return objProfiles.getStaffDb()
--- Ende Code ---

Ich hab's jetzt gefühlte 20x umgebaut, finde aber meinen Fehler nicht so recht. Die Berechnungen hab ich entfernt.

VG, Michael

oxyd21:
Oh man  ::)

Mit nem this statt dem Klassennamen klappt's.

flaite:
Dabei kennt JavaScript überhaupt keine Klassen sondern nur Objekte und Prototypes.  ;D
http://aktuell.de.selfhtml.org/artikel/javascript/oomodell/
In deinem Beispiel macht der Einsatz von prototypes aus meiner Sicht keinen Sinn.
Benutzt Lotus in ihrem XPages-JavaScript den Begriff class ???  ::)


   
   

oxyd21:
Danke für die leicht herablassende Belehrung.  ;)

Ich hatte in meinem ersten Entwurf auch keine Prototypen drin. Da ich jedoch den nachfolgenden Fehler bekam, und es verschiedene Wege zur Simulation von Klassen, habe ich mich für den funktionierenden Weg entschieden. Du darfst natürlich gerne meine Denkfehler im Code verbessern.

--- Zitat ---[TypeError] Error calling method 'getProfiles()' on an object of type 'Object [JavaScript Object]'
--- Ende Zitat ---

Hübsch-programmieren tue ich dann in meiner JS-Objektbeschreibung.   ;D

flaite:
Zorry. Das war nicht herablassend gemeint.
Aber JavaScript ist nun einmal eine objekt-orientierte Sprache, in der es Klassen nicht gibt.
Ich bin selbst eher JQuery user als großer JavaScript-Kenner.

Du könntest es einmal so versuchen.

--- Code: ---function getProfilesObject() {
var profilesObject = new Object();
profilesObject.m_profiles = null;
profilesObject.staff = null;

profilesObject.setCurrentUserProfile = function() {
return "xyz"
}
        // etc...
}

// use->
var myProfilesObject = getProfilesObject();
getProfilesObject.setCurrentUserProfile();

--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln